可以更改字典元素

嘿,我试图在 for 循环中使用 if 语句更改字典中的元素,当我在第一个 for 循环中包含属性字典时,它似乎工作正常。否则我无法根据需要更改元素。


我想做的是创建一个空列表。然后添加 30 个具有相同属性的字典项。创建字典后,我尝试使用 if 语句更改列表中前 3 个元素的属性。然后打印列表中的前 6 个元素以检查更改是否已应用


properties1={'color':'silver','weight':45,'Height':5.5,'planet':'mars'}

for alien in range(30):

    aliens.append(properties1)

for alien in aliens[0:3]:

    if alien['color'] == 'silver':

        alien['weight']=10

        alien['Height']=2

        print(alien)

for alien in aliens[:6]:

    print(alien)

输出是


{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}

{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}

{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}

{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}

{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}

{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}

{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}

{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}

Python字典


FFIVE
浏览 92回答 1
1回答

小怪兽爱吃肉

您只有一本词典,并且在列表中引用了 30 次。你更新的任何内容都会更新这个字典,所以所有的外星人都将是一样的。您应该附加此字典的副本(properties1.copy()而不是第一个循环中的properties1:properties1={'color':'silver','weight':45,'Height':5.5,'planet':'mars'}aliens = []for alien in range(30):    aliens.append(properties1.copy())for alien in aliens[0:3]:    if alien['color'] == 'silver':        alien['weight']=10        alien['Height']=2        print(alien)for alien in aliens[:6]:    print(alien)输出:{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}{'color': 'silver', 'weight': 45, 'Height': 5.5, 'planet': 'mars'}{'color': 'silver', 'weight': 45, 'Height': 5.5, 'planet': 'mars'}{'color': 'silver', 'weight': 45, 'Height': 5.5, 'planet': 'mars'}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python