无法解释列表行为



我被困在一个列表上,没有得到它-为什么我得到下面的结果:


TenLast = [["."] * 10 ] * NumberOfHosts

for i in range(0,NumberOfHosts):
TenLast[i][0] = i

print(TenLast)
exit()
[[6, '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
[6, '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
[6, '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
[6, '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
[6, '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
[6, '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
[6, '.', '.', '.', '.', '.', '.', '.', '.', '.']]

我希望

[[0, '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
[1, '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
[2, '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
[3, '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
[4, '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
[5, '.', '.', '.', '.', '.', '.', '.', '.', '.'], 
[6, '.', '.', '.', '.', '.', '.', '.', '.', '.']]

感谢您的帮助、支持和任何建议。

问候,消息灵通的

子列表都指向内存中的同一列表。您可以通过使用itertools来解决这个问题。

import itertools
TenLast = list(itertools.repeat([["."] * 10 ],NumberOfHosts))
for i in range(0,NumberOfHosts):
TenLast[i][0] = i
print(TenLast)

相关内容

  • 没有找到相关文章

最新更新