python - 以一组元组为值的字典理解
问题描述
我有这个
dict_1 = {1:{("Apple",1),("Orange",1),("Banana",1),("Lemon",1)}}
我想要这个:
{"Apple","Orange","Banana","Lemon"}
这里的正确理解是什么。
我的尝试失败了,因为
TypeError:不可散列的类型:'set'
意味着我无法打开套装。
解决方案
如果您在字典中只有一个键名1
,您可以简单地使用
dict = {1:{("Apple",1),("Orange",1),("Banana",1),("Lemon",1)}}
{key for key, val in dict[1]} # used the 1 assuming its the only key
输出:
{"Apple","Orange","Banana","Lemon"}
编辑:
具有任意数量变量(键)的代码
dict = {1:{("Apple",1),("Orange",1),("Banana",1),("Lemon",1)},2:{("Apple",1),("Orange",1),("Banana",1),("Lemon",1)}}
resultArray = [{x for x, y in dict[eachkey]} for eachkey in {x for x, y in dict.items()} ]
print(resultArray)
输出:
[{'Orange', 'Apple', 'Lemon', 'Banana'}, {'Orange', 'Apple', 'Lemon', 'Banana'}]
编辑2:
代码 :
from itertools import chain
dict = {1:{("Apple",1),("Orange",1),("Banana",1),("Lemon",1)},2:{("Juice",1),("Cocktail",1),("Milk",1),("Soup",1)}}
resultArray = [{x for x, y in dict[eachkey]} for eachkey in {x for x, y in dict.items()} ]
print(set().union(*(resultArray)))
输出:
{'Lemon', 'Soup', 'Milk', 'Cocktail', 'Banana', 'Apple', 'Orange', 'Juice'}
推荐阅读
- javascript - 如何隐藏轮播中单个图像的下一个和上一个按钮?
- faker - faker npm 包,用于获取具有特定性别的名称
- tar - 如何使用 sha1sum 验证 tarball 的内容
- java - Coinbase Api Java POST 请求“无效签名”
- python - 使用蓝图部署到 Heroku 的 Flask Python 中的 URL 前缀
- apache - 永久重定向删除 URL 中的文件扩展名
- firebase - Firebase 和 Firestore - 将多个应用程序分组到一个项目中 - 身份验证如何工作?
- python - Python 3.6 相当于 md5 digest() 方法?
- performance - 最佳缓冲区大小以避免最近 i7 / i9 CPU 的缓存未命中
- javascript - 在使用函数之前验证函数的所有输入是否是最佳实践?