Python 如何按字母顺序对词典排序?
这是输出:Python 如何按字母顺序对词典排序?,python,sorting,dictionary,alpha,Python,Sorting,Dictionary,Alpha,这是输出: def wordCount(inPath): inFile = open(inPath, 'r') lineList = inFile.readlines() counter = {} for line in range(len(lineList)): currentLine = lineList[line].rstrip("\n") for letter in range(len(currentLine)):
def wordCount(inPath):
inFile = open(inPath, 'r')
lineList = inFile.readlines()
counter = {}
for line in range(len(lineList)):
currentLine = lineList[line].rstrip("\n")
for letter in range(len(currentLine)):
if currentLine[letter] in counter:
counter[currentLine[letter]] += 1
else:
counter[currentLine[letter]] = 1
sorted(counter.keys(), key=lambda counter: counter[0])
for letter in counter:
print('{:3}{}'.format(letter, counter[letter]))
inPath = "file.txt"
wordCount(inPath)
a 1
k 1
u 1
l 2
12
h 5
T 1
r 4
c 2
d 1
s 5
i 6
o 3
f 2
H 1
A 1
e 10
n 5
x 1
t 5
这是我想要的输出:
def wordCount(inPath):
inFile = open(inPath, 'r')
lineList = inFile.readlines()
counter = {}
for line in range(len(lineList)):
currentLine = lineList[line].rstrip("\n")
for letter in range(len(currentLine)):
if currentLine[letter] in counter:
counter[currentLine[letter]] += 1
else:
counter[currentLine[letter]] = 1
sorted(counter.keys(), key=lambda counter: counter[0])
for letter in counter:
print('{:3}{}'.format(letter, counter[letter]))
inPath = "file.txt"
wordCount(inPath)
a 1
k 1
u 1
l 2
12
h 5
T 1
r 4
c 2
d 1
s 5
i 6
o 3
f 2
H 1
A 1
e 10
n 5
x 1
t 5
如何按字母顺序排列“计数器”?
我尝试过简单地按键和值排序,但它不会首先返回以大写字母开头的字母顺序
谢谢你的帮助
12
A 1
H 1
T 1
a 1
c 2
d 1
e 10
f 2
h 5
i 6
k 1
l 2
n 5
o 3
r 4
s 5
t 5
u 1
x 1
单独做什么都不做:它返回一个根本不使用的结果(除非您使用
回忆它,但这是一种命令行实践)
与使用.sort()
方法使用列表
所能做的相反,您不能“就地”对字典键进行排序。但您可以在排序后的密钥版本上进行迭代:
sorted(counter.keys(), key=lambda counter: counter[0])
,key=lambda counter:counter[0]
在这里是无用的:您的密钥中只有字母
旁白:使用集合可以大大简化整个代码。计数器可以清点字母
for letter in sorted(counter.keys()):
结果(包括空格字符):
除了将数据存储在字典中,他还可以只使用OrderedDict,这样他就不必对计数器进行排序。keys()每次打印时都会跟踪插入顺序。这和分类不一样。如果订单一开始不是排序顺序,排序会破坏订单。那么print(k,v)
呢?@StefanPochmann:在python 2中,它将k,v
打印为元组
(除非您从导入print\u函数
),所以使用格式
`是版本不可知的。我感谢您对代码的分解和简化。只是我们还没有学过收集,所以虽然我很想简单地使用你的简单解决方案,但我不会真正理解发生了什么