python - 打印 Python 字典中的所有唯一值

标签 python dictionary

我正在努力解决 Python 中的一个小问题(我的程序现在是 3.2.3 版)。

我有一个看起来像这样的字典(这只是一个例子,实际上取自这里的另一篇文章):

[
    {"abc": "movies"},
    {"abc": "sports"},
    {"abc": "music"},
    {"xyz": "music"},
    {"pqr": "music"},
    {"pqr": "movies"},
    {"pqr": "sports"},
    {"pqr": "news"},
    {"pqr": "sports"},
]

我想简单地 print() 一个唯一值列表,消除重复。在此列表的末尾,我想打印字典中唯一值的数量:

movies
sports
music
news

4

感谢任何帮助。我发现这里还有一些其他帖子有些相关,但我对 Python 的了解还不够,无法将其应用于这个特定问题。

最佳答案

在此处使用 set,因为它们仅包含唯一项。

>>> lis = [{"abc":"movies"}, {"abc": "sports"}, {"abc": "music"}, {"xyz": "music"}, {"pqr":"music"}, {"pqr":"movies"},{"pqr":"sports"}, {"pqr":"news"}, {"pqr":"sports"}]
>>> s = set( val for dic in lis for val in dic.values())
>>> s 
set(['movies', 'news', 'music', 'sports'])

循环这个集合以获得预期的输出:

for x in s:                                
    print x
print len(s)   #print the length of set after the for-loop
... 
movies
news
music
sports
4

这一行s = set(val for dic in lis for val in dic.values())大致相当于:

s = set()
for dic in lis:
   for val in dic.values():
      s.add(val)

关于python - 打印 Python 字典中的所有唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17218139/

相关文章:

python - 给定端口=0时如何确定aiohttp选择哪个端口

c# - XML 注释 - 如何正确引用字典索引器?

Python3 无法将字符串转换为 dict 或 json

python - 提供的 Instagram 访问 token 无效

python - 合并 Pandas 中的两个时间序列并在阈值时间差内提取观察值

python - 读取 json 文件作为输入并作为 pprint 输出?

python 木星 : Shortcut to copy output of a cell

python - 字典列表检查键 :value

java - 从 HashMap 的 Deque 中获取 key

python - 编写字典列表,每个键有多个值作为新行