0
道歉,如果这是显而易见的,但我对Python很新,我无法解决这个问题。在下面的代码中,我用一系列列表填充了一个元组,并且我试图用这个元组中的项创建一个新列表。我希望最终的结果将是test_raw保持不变,test_working将如下所示:Python不可变元组 - 我做错了什么?
[['aa', 1, 2, 99.5, ['bb', 1, 2, 27.2]],
['aa', 5, 5, 74.2, ['bb', 5, 5, 37]]]
但是,在这个过程中,我似乎是追加“BB”名单,我的元组为好。我认为一旦构建了一个元组,它就不能改变,但显然不是。任何想法发生了什么?
test_raw = (['aa',1,2,99.5],
['bb',1,2,27.2],
['aa',5,5,74.2],
['bb',5,5,37])
test_working = []
for i in range(len(test_raw)):
if test_raw[i][0] == "aa":
test_working.append(test_raw[i])
for i in range(len(test_raw)):
if test_raw[i][0] == "bb":
for j in range(len(test_working)):
if test_working[j][1:3] == test_raw[i][1:3]:
test_working[j].append(test_raw[i])
break
print(test_raw)
(['aa', 1, 2, 99.5, ['bb', 1, 2, 27.2]], ['bb', 1, 2, 27.2], ['aa',.....)
感谢咨询。现在很明显。我当时看不到它。我现在可以看到,如果我不想改变我的原始数据,我应该将test_raw设置为元组的元组而不是元组的列表。 –
@JC_RMB是的,这是确保您的数据保持不变的绝佳方法 – sedavidw