Python:有效计算字典列表中键的唯一值的数目

2024-05-19 01:13:27 发布

您现在位置: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.'

非常感谢


Tags: of方法no代码in列表for字典
3条回答
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 

更好的方法是直接从字典中构建set

print len(set(p['Nationality'] for p in people))

相关问题 更多 >

    热门问题