Python:有效计数字典列表中某个键的唯一值的数量
问题描述:
必须有一个更好的方式来编写这个Python代码,我有一个人名单(人是词典),我试图找到这个数字某个特定键的唯一值(在这种情况下,密钥被称为国籍,我试图找到独特的民族数量的人员列表):Python:有效计数字典列表中某个键的唯一值的数量
no_of_nationalities = []
for p in people:
no_of_nationalities.append(p['Nationality'])
print 'There are', len(set(no_of_nationalities)), 'nationalities in this list.'
非常感谢
答
count = len(set(p['Nationality'] for p in people))
print 'There are' + str(count) + 'nationalities in this list.'
答
更好的方法是直接从字典中构建set
ionaries:
print len(set(p['Nationality'] for p in people))
答
len(set(x['Nationality'] for x in p))
答
有collections
模块
import collections
....
count = collections.Counter()
for p in people:
count[p['Nationality']] += 1;
print 'There are', len(count), 'nationalities in this list.'
这样你可以指望各民族过。
print(count.most_common(16))#print 16 most frequent nationalities
如果我正确地阅读了原文,'people'是字典的集合,但不是字典本身。 – 2011-05-19 17:06:56
@Sven Marnach对,修正了。 – phihag 2011-05-19 17:10:04