我在Python中遇到了一个小问题(我的程序现在是3.2.3版)。
我有一本这样的字典(这只是一个例子,实际上取自另一篇文章):
[{"abc":"movies"}, {"abc": "sports"}, {"abc": "music"}, {"xyz": "music"}, {"pqr":"music"}, {"pqr":"movies"},{"pqr":"sports"}, {"pqr":"news"}, {"pqr":"sports"}]
我只想打印一个唯一值的列表,消除重复项。在这个列表的末尾,我想打印字典中唯一值的数目:
movies
sports
music
news
4
如有任何帮助,我们将不胜感激。这里还有一些其他的帖子,我发现它们有点相关,但是我对Python的了解还不足以将它应用到这个特定的问题上。
为此,可以利用
set
的属性;每个元素都是唯一的,重复项将被忽略。以这种方式使用
set
,将丢弃从.values()
返回的重复元素。然后可以按如下方式打印它们:在这里使用
set
,因为它们只包含唯一的项。循环此集合以获取预期输出:
这一行
s = set( val for dic in lis for val in dic.values())
大致相当于:使用
set()
:在Python 2上使用} 和一个生成器表达式按顺序列出所有值:
.itervalues()
可以提高效率。因为有一个字典列表,我们需要首先从每个字典中提取值;我使用^{另一种方法是在生成器表达式中使用嵌套循环:
相关问题 更多 >
编程相关推荐