如何阻止值在字典中覆盖自己:Python

2024-09-28 23:30:18 发布

您现在位置:Python中文网/ 问答频道 /正文

很难描述我的问题,所以让我来描述一下情景和我所拥有的:

listofkeys=[]
listofvalues=[]
for it in practice_list:
    it1= it[0:5]
    it2= it[8:19]
    listofkeys.append(it1)
    listofvalues.append(it2)
di = dict(zip(listofkeys, listofvalues))

出于安全原因,这会打印一些我无法显示的内容,但对于practice_列表中的原始字符串,有重复的名称,并且具有不同的值,例如:[“apple是绿色的”、“apple是红色的”、“banana是黄色的”…]。当我通过索引将这个列表与listofnames和listofcolors分开,然后压缩到一个字典中时,它基本上会输出:{'apple':'red','banana':yellow'…}。for循环似乎正在覆盖另一个值,对吗?我怎样才能阻止这一切,让字典打印出{'apple':'green'、'red'、'banana':yellow'…}


Tags: apple列表for字典itredbananaappend
1条回答
网友
1楼 · 发布于 2024-09-28 23:30:18

The for loop seems to be overwriting the other value right?

没有;循环将每个键值对存储到listofkeyslistofvalues中,因此没有问题

但是,dict每个键只能有一个值,并且它的键必须是唯一的。当dict构造函数在zipped列表中运行时,它按顺序一次分配一个键。如果一个键出现多次,那么每次遇到它时,它的值都会被替换

确保将first值用于给定键的最简单方法是按相反顺序遍历列表(例如,通过向zip提供列表的reversed()版本)

相关问题 更多 >