如何绕过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]}")