【发布时间】:2022-01-24 12:49:03
【问题描述】:
在下面的孤立代码 sn-p 中,我试图得到这个结果: lista_skafwn_to_insert: [{'SERVICE REPORTS': ['1']}, {'SERVICE REPORTS': ['2']}],
但我得到了这个:lista_skafwn_to_insert: [{'SERVICE REPORTS': ['2']}, {'SERVICE REPORTS': ['2']}]。
为什么第一个字典的值改变了,等于最后一个字典的值?
sr_ged 为 1 的那一刻,我将其附加到列表中。然后 sxima_skafous 字典将此列表用作“SERVICE REPORTS”键中的值。
然后我将此字典附加到 lista_skafwn_to_insert 列表中。
所以 lista_skafwn_to_insert 的第一个元素是这个 {'SERVICE REPORTS': ['1']}。
然后我清除 lista_service_reports 并在 sr_ged 上分配一个新值,然后重复上述过程。
为什么在 sr_ged 和 lista_sesrvice_reports 发生任何更改之前附加第一个字典的值会受到影响?
代码sn-p:
lista_skafwn_to_insert = []
lista_service_reports = []
sr_ged = input("sr_ged: ")
lista_service_reports.append(sr_ged)
sxima_skafous = {"SERVICE REPORTS": lista_service_reports}
lista_skafwn_to_insert.append(sxima_skafous)
print('lista_skafwn_to_insert:' + str(lista_skafwn_to_insert))
lista_service_reports.clear()
sr_ged = input("sr_ged: ")
lista_service_reports.append(sr_ged)
sxima_skafous = {"SERVICE REPORTS": lista_service_reports}
lista_skafwn_to_insert.append(sxima_skafous)
print('lista_skafwn_to_insert: ' + str(lista_skafwn_to_insert))
【问题讨论】:
-
您绝对应该为 Python 寻找可变性。列表在 python 中是可变的,所以如果,例如:
a =[1,2,3]; b = a; b.append(4); print(a)>>a = [1,2,3,4]这应该和你在这里得到的一样。字典也是如此。
标签: python list dictionary