擅长:python、mysql、java
<p><code>freqlst</code>、<code>countlist</code>和{<cd3>}中的项通过它们的位置相互关联。如果有任何排序,则关系将丢失。在</p>
<p><em>在排序之前将列表压缩在一起可以保持这种关系。在</p>
<p>将从您的列表初始化行中提取。在</p>
<pre><code>lst = []
countlst = []
freqlst = []
for ltr, c in counts.items():
#change here, lst now only contains letters
lst.append(ltr)
countlst.append(c)
totalcount = sum(countlst)
for ec in countlst:
efreq = (ec/totalcount) * 100
freqlst.append(efreq)
#New stuff here: Note this only works in python 3+
zipped = zip(lst, countlst, freqlst)
zipped = sorted(zipped, key=lambda x: x[1])
for ltr, c, freq in zipped:
print("{} - {} - {}%".format(ltr, c, freq)) # love me the format method :)
</code></pre>
<p>基本上,zip将列表组合成一个元组列表。然后可以使用lambda函数对这些元组进行排序(非常常见的堆栈问题)</p>