参见英文答案 > How can this function be rewritten to implement OrderedDict? 3个
我创建了一个空的defaultdict(列表),我正在添加它.我希望按照添加顺序对键进行排序.我的代码需要输入.
输入:
4
bcdef
abcdefg
bcde
bcdef
我的代码:
from collections import defaultdict
d = defaultdict(list)
a = int(input())
for i in range(a):
temp = raw_input()
d[temp].append(i)
for k in d:
print k
输出:
bcde
bcdef
abcdefg
期望的输出
bcdef
abcdefg
bcde
解决方法:
>>> from collections import OrderedDict
>>> d = OrderedDict()
>>> for i in range(4):
... d.setdefault(input(), []).append(i)
...
bcdef
abcdefg
bcde
bcdef
>>> print("\n".join(d))
bcdef
abcdefg
bcde
在这里,我们使用setdefault方法,如果在字典中找不到密钥,它将设置密钥的默认值(第二个参数).并且setdefault返回与该键对应的值,因此在这种情况下,如果该键不存在,则为该键分配新列表并返回该列表.如果密钥已存在,则将返回与其对应的现有列表.我们只需在返回的列表上调用append.
标签:python,dictionary,python-2-7,python-3-x,defaultdict
来源: https://codeday.me/bug/20190702/1358694.html