所以我有一个列表D = [[1030, 1200], [1300, 1600], [1800, 1830]]
,我做了一个名为E:E = D[:]
的副本,然后我试着用一个函数对它进行操作:covertToMin(E)
。然而,这个函数也在D
上运行,这没有意义,因为它们在内存中有不同的位置。
我很困惑,谢谢你的帮助!你知道吗
E = D[:]
for i in range(len(E)):
for j in range(0,2):
E[i][j] = convertToMinutes(E[i][j])
print(id(E))
print(id(D))
print(D)
print(E)
def convertToMinutes(time):
if time < 1000:
time = str(time)
minutes = time[1:]
hourmin = int(time[0])* 60
time = int(minutes) + (hourmin)
else:
time = str(time)
minutes = time[2:]
hourmin = int(time[:2]) * 60
time = int(minutes) + hourmin
return time
我收到的输出是:
4368232032
4368231552
[[690, 720], [900, 960], [1080, 1110]]
[[690, 720], [900, 960], [1080, 1110]]
我建议您使用pythondeepcopy解决您的问题。documentation page是清楚的,它会给我们一些启示。你知道吗
我认为问题在于,当您“等于”列表变量(或dict)时,Python不会创建不同的列表。为此,需要使用
deepcopy()
在代码中尝试以下操作:
这将生成两个单独的列表。你知道吗
相关问题 更多 >
编程相关推荐