我有一个字典,其中我已经有数据,即键有值,其中一些有多个值。
例如:
i = {"a": "111", "b": "222", "c": ["333", "444"]}
如何更改多个值的类型?我希望它们是集合,而不是列表,例如:
i = {"a": {"111"}, "b": {"222"}, "c": {"333", "444"}}
这是一个类似的帖子: How to add multiple values to a dictionary key in python? [closed]
在那里解释了如何将多个元素添加到字典中,但它们似乎总是列表。
如何更改多个值的类型? 或者如何将它们作为集合添加到字典中,而不是列表?
答案 0 :(得分:3)
使用dict-comprehension可以很容易地转换现有的dict:
i = {"a": "111", "b": "222", 'c': ["333", "444"]}
{k: set(v) if isinstance(v, list) else v for k, v in i.items()}
这会将list
s的所有值转换为set
s。
答案 1 :(得分:1)
在一行代码中:
>>> i = {"a": "111", "b": "222", "c": ["333", "444"]}
>>> {k: set(v) for k, v in i.items()}
{'b': {'2'}, 'a': {'1'}, 'c': {'444', '333'}}
或者还有一些步骤:
>>> i = {"a": "111", "b": "222", "c": ["333", "444"]}
>>> for k, v in i.items():
... i[k] = set(v)
>>> i
{'b': {'2'}, 'a': {'1'}, 'c': {'444', '333'}}
答案 2 :(得分:0)
而不是做
my_dict['key'] = ['333', '444']
使用set
字面值:
my_dict['key'] = {'333', '444'}
这看起来像一个dict
字面值,但缺少关键字:像事情这样的值使它成为set
。