Python:如何删除Dictionary中的所有非字母数字键

时间:2015-12-12 21:08:30

标签: python python-2.7 dictionary

我制作了一个字典,用于计算文本文件中符号出现次数。但是,我想排除所有非字母数字键(我想保留所有字母键,大写和小写)。

如何编写函数来执行此操作?

最终我希望按字母顺序排列新词典。

即。从{' ': 4, 'e': 2, 'a': 1}{'a': 1,'e': 2}

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)])