use*_*335 40 python dictionary python-3.x
我有一本包含20 000多个条目的字典,目前只有单词和源文本中使用该单词的次数(Dante的意大利神曲).
我想通过所有条目来处理所有使用实际定义替换值的条目.是否有一种简单的方法来迭代关键字,这些关键字具有作为值的数字以便替换(当我研究其含义时)?
字典开始:
{'corse': 378, 'cielo,': 209, 'mute;': 16, 'torre,': 11, 'corsa': 53, 'assessin': 21, 'corso': 417, 'Tolomea': 21} # etc.
Run Code Online (Sandbox Code Playgroud)
一种应用程序的排序,它将建议用于研究和定义的关键字.
Mar*_*ers 58
您无法选择特定值(或值的类型).您要么制作反向索引(将数字映射回(键)键),要么每次都必须遍历所有值.
如果您正在以任意顺序处理数字,您也可以遍历所有项目:
for key, value in inputdict.items():
# do something with value
inputdict[key] = newvalue
Run Code Online (Sandbox Code Playgroud)
否则我会使用反向索引:
from collections import defaultdict
reverse = defaultdict(list)
for key, value in inputdict.items():
reverse[value].append(key)
Run Code Online (Sandbox Code Playgroud)
现在,您可以按值查找键:
for key in reverse[value]:
inputdict[key] = newvalue
Run Code Online (Sandbox Code Playgroud)
Rot*_*eti 33
如果您需要声明性解决方案,可以使用dict.update()更改dict中的值.
my_dict.update({'key1': 'value1', 'key2': 'value2'})
Run Code Online (Sandbox Code Playgroud)
如果你遍历一个字典就得到了密钥,所以假设你的字典在一个被调用的变量中data并且你有一些函数find_definition()可以得到这个定义,你可以做类似下面的事情:
for word in data:
data[word] = find_definition(word)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
294539 次 |
| 最近记录: |