gpt4 book ai didi

python - python 代码没有显示所需的输出,问题出在哪里?

转载 作者:行者123 更新时间:2023-12-04 07:30:49 24 4
gpt4 key购买 nike

我的 python 代码是:

new_alien={'color':'green','points':5,'speed':'slow'}
aliens=[]
for alien_number in range(10):
aliens.append(new_alien)
print(f"total aliens:{len(aliens)}")
print(".......")
print(aliens)

for alien in aliens[:3]:
if alien['color']=='green':
alien['color']='yellow'
alien['points']=10
alien['speed']='fast'

print(aliens)

它显示的输出如下:

total aliens:10
.......
[{'color': 'green', 'points': 5, 'speed': 'slow'}, {'color': 'green', 'points': 5, 'speed': 'slow'}, {'color': 'green', 'points': 5, 'speed': 'slow'}, {'color': 'green', 'points': 5, 'speed': 'slow'}, {'color': 'green', 'points': 5, 'speed': 'slow'}, {'color': 'green', 'points': 5, 'speed': 'slow'}, {'color': 'green', 'points': 5, 'speed': 'slow'}, {'color': 'green', 'points': 5, 'speed': 'slow'}, {'color': 'green', 'points': 5, 'speed': 'slow'}, {'color': 'green', 'points': 5, 'speed': 'slow'}]
[{'color': 'yellow', 'points': 10, 'speed': 'fast'}, {'color': 'yellow', 'points': 10, 'speed': 'fast'}, {'color': 'yellow', 'points': 10, 'speed': 'fast'}, {'color': 'yellow', 'points': 10, 'speed': 'fast'}, {'color': 'yellow', 'points': 10, 'speed': 'fast'}, {'color': 'yellow', 'points': 10, 'speed': 'fast'}, {'color': 'yellow', 'points': 10, 'speed': 'fast'}, {'color': 'yellow', 'points': 10, 'speed': 'fast'}, {'color': 'yellow', 'points': 10, 'speed': 'fast'}, {'color': 'yellow', 'points': 10, 'speed': 'fast'}]

虽然我只遍历了前 3 个元素,但为什么它会更改列表“alien”的所有元素?

最佳答案

因为aliens中的所有元素都引用同一个变量new_alien

使用new_alien.copy()

new_alien={'color':'green','points':5,'speed':'slow'}
aliens=[]
for alien_number in range(10):
aliens.append(new_alien.copy())


print(f"total aliens:{len(aliens)}")
print(".......")
print(aliens)

for alien in aliens[:3]:
if alien['color']=='green':
alien['color']='yellow'
alien['points']=10
alien['speed']='fast'

print(aliens)

关于python - python 代码没有显示所需的输出,问题出在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67942856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com