按索引遍历字典



如何绕过python开箱机制,当循环中的items()的顺序不对应于它应该是?

st = 'Tree'
freq = Counter(st)
sorted(freq.items(), key=lambda item: item[1])
arr = []
for k, v in freq.items():
for i in range(v):
arr.append(k)

我期望得到第一个迭代对:('e', 2),但它是('t', 1)。但是排序应用于字典的第3行。

如何以排序的方式迭代字典?(不应用引擎盖重新排序)

乌利希期刊指南。这个问题已经有了答案,但是,知道为什么字典在Python3中以这种方式实现会很好。

按键排序:

a = dict(b=3, c=5, a=10)
for k in sorted(a):
print(f"{k}: {a[k]}")

,如果你想按值排序:

a = dict(b=3, c=5, a=10)
for k, v in sorted(a.items(), key=lambda item: item[1]):
print(f"{k}: {a[k]}")

最新更新