繁体   English   中英

为什么输出与我预期的输出不匹配? Python字典

[英]Why isn't the output match with my expected output? Python dictionary

我试图将字符串元素添加到字典中,但它不起作用

adatok = ["marha", 1, "kacsa", 2, "kacsa", 1, "birka", 3, "marha", 4, "marha", 2]
sorszámok = list(set([x for x in adatok if type(x) == int]))


szótár = {}
for i in sorszámok:#Létrehozzuk a sorszámokat egy szótárba
    szótár.update({i:set()})

for j in adatok:
    if type(j) == int:
        szótár[j].add(adatok[adatok.index(j)-1])
#Expected output:{1: {'marha','kacsa'}, 2: {'kacsa','marha'}, 3: {'birka'}, 4: {'marha'}}
#Output:{1: {'marha'}, 2: {'kacsa'}, 3: {'birka'}, 4: {'marha'}}

不是从唯一键开始,然后尝试为每个键找到值,而是遍历key, value对并将它们添加到集合中。 使用defaultdict可以省去提前设置 dict 的麻烦。

>>> from collections import defaultdict
>>> adatok = ["marha", 1, "kacsa", 2, "kacsa", 1, "birka", 3, "marha", 4, "marha", 2]
>>> szótár = defaultdict(set)
>>> for k, v in zip(adatok[1::2], adatok[0::2]):
...     szótár[k].add(v)
...
>>> dict(szótár)
{1: {'marha', 'kacsa'}, 2: {'marha', 'kacsa'}, 3: {'birka'}, 4: {'marha'}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM