Python 3.x 如何按顺序逐个遍历dic中具有相同值的所有键
我正在处理一个包含太多单词的文本文件,我想得到所有单词的长度。例如,首先我想得到所有长度为2,3,然后4到15的单词 单词=这个,长度=4 仇恨:4 爱情:4 那是:4 中国:5 太好了:5 以此类推,最多15个 我试着用下面的代码,但我不能一个接一个地遍历所有的键。通过这段代码,我可以得到长度为5的单词,但我希望这个循环以顺序从2开始,一直到15Python 3.x 如何按顺序逐个遍历dic中具有相同值的所有键,python-3.x,dictionary,Python 3.x,Dictionary,我正在处理一个包含太多单词的文本文件,我想得到所有单词的长度。例如,首先我想得到所有长度为2,3,然后4到15的单词 单词=这个,长度=4 仇恨:4 爱情:4 那是:4 中国:5 太好了:5 以此类推,最多15个 我试着用下面的代码,但我不能一个接一个地遍历所有的键。通过这段代码,我可以得到长度为5的单词,但我希望这个循环以顺序从2开始,一直到15 text = open(r"C:\Users\israr\Desktop\counter\Bigdata.txt") d = dict()
text = open(r"C:\Users\israr\Desktop\counter\Bigdata.txt")
d = dict()
for line in text:
line = line.strip()
line = line.lower()
words = line.split(" ")
for word in words:
if word not in d:
d[word] = len(word)
def getKeysByValue(d, valueToFind):
listOfKeys = list()
listOfItems = d.items()
for item in listOfItems:
if item[1] == valueToFind:
listOfKeys.append(item[0])
return listOfKeys
listOfKeys = getKeysByValue(d, 5)
print("Keys with value equal to 5")
#Iterate over the list of keys
for key in listOfKeys:
print(key)
您的第一部分代码是正确的,dictionaryd将为您提供所有具有各自长度的唯一单词。 现在,您需要获取所有单词及其长度,如下所示:
{'this':4, 'that':4, 'water':5, 'china':5, 'great':5.......till length 15}
要获得这样的字典,您可以按其值对字典进行排序,如下所示
import operator
sorted_d = sorted(d.items(), key=operator.itemgetter(1))
已排序的\u d将采用以下格式:
{'this':4, 'that':4, 'water':5, 'china':5, 'great':5,......., 'abcdefghijklmno':15,...}
我所做的是:
在您的字典版本中,“单词”必须是与其长度相等的键。
如下所示:
{“恨”:4,“爱”:4}
新版本:
{4:[“恨”、“爱”]、5:[“伟大”、“中国”]}
现在键是整数,值是单词列表。例如,如果key为4,则该值将是文件中长度为4的所有单词的列表