我制作了一个字典,用于计算文本文件中符号出现次数。但是,我想排除所有非字母数字键(我想保留所有字母键,大写和小写)。
如何编写函数来执行此操作?
最终我希望按字母顺序排列新词典。
即。从{' ': 4, 'e': 2, 'a': 1}
到{'a': 1,'e': 2}
答案 0 :(得分:1)
您可以使用词典理解。
a = {' ': 4, 'e': 2, 'a': 1}
a = { key:val for key,val in a.iteritems() if key.isalnum() }
print a
输出:
{'a': 1, 'e': 2}
我希望按字母顺序排列新词典。
对于这部分,字典没有订单,因此您无法对它们进行排序。你可以做的是按dict.iteritems()
制作元组,然后根据键或值对它们进行排序。
答案 1 :(得分:0)
如果您想在字典中维护特定订单,则需要OrderedDict
:
from collections import OrderedDict
d = {' ': 4, 'e': 2, 'a': 1}
od = OrderedDict(sorted((k,v) for k,v in d.items() if k.isalpha()))
print(od)
OrderedDict([('a', 1), ('e', 2)])