python - 如何创建一个包含集合中每个值的字典?
问题描述
我在尝试创建使用集合作为键值的字典时遇到问题,并且包含键的部分元素的值将被添加到键值中。
例如,如果我有以下一组:
{( 'a', 'b', 'c' ), ( 'a', 'd', 'b' ), ( 'z',), ( 'z', 'j' ), ( 'z', 'w' ), ( 'z', 'w', 's' ), ( 'z', 'm' )}
我怎样才能使字典看起来像:
{( 'a', 'b' ,'c' ): {( 'a', 'b', 'c' )}, ( 'a' ,'d' ,'b' ): {( 'a' ,'d' ,'b' )}, ( 'z' ): {('z'),('z','j'),('z','w'),('z','w','s'),('z','m')}, ( 'z', 'j' ): {('z', 'j')}, ('z', 'w'): {('z','w'), ('z', 'w', 's')}}
顺序无关紧要,它必须包括每个元素。例如,由于 value('z', 'w', 's')
包含('z')
and ('z','w')
,它也为这些键添加了。
解决方案
当然不是最有效的:
myset = {( 'a', 'b', 'c' ), ( 'a', 'd', 'b' ), ( 'z',), ( 'z', 'j' ), ( 'z', 'w' ), ( 'z', 'w', 's' ), ( 'z', 'm' )}
dict_of_set = {k: set(x for x in myset if set(k).issubset(x)) for k in myset}
推荐阅读
- python - LeetCode“油漆屋”问题:尽管 O(N) 解决方案超出了时间限制?
- javascript - 如何将参数从 gulp 观察者传递给任务
- excel - Excel,最小/最大宏不同范围
- go - 在 golang func 中使用默认值
- android - 查看寻呼机和点击的活动有什么区别?
- java - 替换属性文件中的占位符
- python - Python类结构和继承
- python - 蟒蛇 3 | 按“N”或“n”后,我的功能不会打印“否”。相反,它会循环回到开头
- mysql - 如何设置 SQL 变量的最大数值?
- git - 使用多个 .gitignore 文件(使用 React Native)