Python编程中防止字典、矩阵、队列的元素被更新

一 说明:

在做DFS题目时,本人经常使用dict、list和queue;然而,在进行程序递归时,这些变量一经修改,则无法复原。因此,尝试通过将其赋值给新变量,从而避免产生上述问题。

二 解决方案:

2.1 对于字典,在给新字典的键值赋值时,使用“[::]”符号获得原字典相应键的值(这里的值是list类型):

# ## 0 传递字典数据;用来更新障碍周围所需的灯数
        new_barrier_dict = {}
        for keyi in barrier_dict.keys():
            new_barrier_dict[keyi] = barrier_dict[keyi][::]
            # new_barrier_dict[keyi] = barrier_dict[keyi] # 不要写成这样,否则新旧字典均被更新

2.2 对于矩阵而言,逐点获得矩阵元素,然后重新赋值给新队列:

# 填充所在行和所在列的元素
        new_Data = []
        for rr in range(len(Data)):
            temp = []
            for cc in range(len(Data[0])):
                temp.append(Data[rr][cc])
            new_Data.append(temp)
# new_Data = Data # 不要这样写,否则新旧矩阵均实时更新

2.3 对于队列而言,为新队列首先添加一个元素,然

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值