【发布时间】:2017-07-30 19:53:23
【问题描述】:
编辑: 这应该与我在下面的代码中所做的完全相同,但简化了。 我正在替换嵌套列表中的值。前 3 个值正确更改,但后 3 个值替换为相同的值。如果我运行这个简化的代码,它会正确输出。我看不出这与底部的实际代码有什么不同。
string = [['A', 'B', 'C'],
['A', 'B', 'C'],
['A', 'B', 'C'],
['D', 'E', 'F'],
['D', 'E', 'F'],
['D', 'E', 'F']]
string[0][2] = 'X'
string[1][2] = 'Y'
string[2][2] = 'Z'
string[3][2] = 'X'
string[4][2] = 'Y'
string[5][2] = 'Z'
for i in string:
print(i)
['A', 'B', 'X']
['A', 'B', 'Y']
['A', 'B', 'Z']
['D', 'E', 'Z']
['D', 'E', 'Z']
['D', 'E', 'Z']
有人可以告诉我这里出了什么问题吗?我正在替换下面列表中的字符串值。前 5 个更改一切正常……但是我的最后 5 个值都被相同的值替换。
self.seq_string[67][1] = 'Sequence_Images/40_1.jpg'
self.seq_string[106][2] = 'Sequence_Images/39_6.jpg'
self.seq_string[131][1] = 'Sequence_Images/38_6.jpg'
self.seq_string[175][1] = 'Sequence_Images/37_5.jpg'
self.seq_string[177][2] = 'Sequence_Images/1_2.jpg'
self.seq_string[87][2] = 'Sequence_Images/40_1.jpg'
self.seq_string[116][2] = 'Sequence_Images/39_6.jpg'
self.seq_string[171][2] = 'Sequence_Images/38_6.jpg'
self.seq_string[180][2] = 'Sequence_Images/37_5.jpg'
self.seq_string[184][2] = 'Sequence_Images/1_2.jpg'
print(self.seq_string[67])
print(self.seq_string[106])
print(self.seq_string[131])
print(self.seq_string[175])
print(self.seq_string[177])
print('\n')
print(self.seq_string[87])
print(self.seq_string[116])
print(self.seq_string[171])
print(self.seq_string[180])
print(self.seq_string[184])
这个列表中的第一个改变的值很好:
['Sequence_Images/16_3.jpg', 'Sequence_Images/40_1.jpg'] ['Sequence_Images/33_2.jpg','Sequence_Images/9_4.jpg','Sequence_Images/39_6.jpg'] ['Sequence_Images/16_3.jpg', 'Sequence_Images/38_6.jpg'] ['Sequence_Images/33_2.jpg', 'Sequence_Images/37_5.jpg'] ['Sequence_Images/33_2.jpg', 'Sequence_Images/9_4.jpg', 'Sequence_Images/1_2.jpg']
...但是这些都替换为相同的值。 没关系,第一个项目都是一样的 - 我只是替换每个项目的最后一个值:
['Sequence_Images/16_3.jpg', 'Sequence_Images/35_5.jpg', 'Sequence_Images/1_2.jpg'] ['Sequence_Images/16_3.jpg'、'Sequence_Images/35_5.jpg'、'Sequence_Images/1_2.jpg'] ['Sequence_Images/16_3.jpg'、'Sequence_Images/35_5.jpg'、'Sequence_Images/1_2.jpg'] ['Sequence_Images/16_3.jpg'、'Sequence_Images/35_5.jpg'、'Sequence_Images/1_2.jpg'] ['Sequence_Images/16_3.jpg', 'Sequence_Images/35_5.jpg', 'Sequence_Images/1_2.jpg']
【问题讨论】:
-
你能把它简化一点吗?也许让代码输入/输出类似于'1''2''3'对应于你实际得到的东西?这将帮助人们回答你的问题。并不是说这是不可读的,但在写问题时绝对是要考虑的事情。
-
这很难回答,因为我们无法重现该问题。请尝试创建一个独立的、可重复的示例和edit 问题。这样做,您很可能会自己发现问题,否则我们很乐意提供帮助。
-
这很难回答,因为我们无法重现该问题。请尝试创建一个独立的、可重现的示例和edit 问题。这样做,您很可能会自己发现问题,否则我们很乐意提供帮助。
-
您已将此问题标记为熊猫。您是否正在使用数据框?
-
我猜出于某种原因
self.seq_string[87]、self.seq_string[116]、self.seq_string[171]、self.seq_string[180]、self.seq_string[184]都指向同一个列表,但是您没有显示代码它们在哪里被初始化。
标签: python