python实现字典键值(字典中嵌套了列表)互换
时间: 2023-12-02 20:03:32 浏览: 34
可以使用列表推导式来实现字典键值互换,同时使用内置函数 `zip()` 将原字典的键和值两两配对:
```python
my_dict = {'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]}
new_dict = {value: key for key, values in my_dict.items() for value in values}
print(new_dict)
```
输出结果为:
```
{1: 'a', 2: 'a', 3: 'a', 4: 'b', 5: 'b', 6: 'b', 7: 'c', 8: 'c', 9: 'c'}
```
注意,上述代码将原字典的值列表中的每个元素都作为新字典的键,可能会产生重复的键。如果需要保证键的唯一性,可以使用集合来去重:
```python
my_dict = {'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]}
new_dict = {value: key for key, values in my_dict.items() for value in set(values)}
print(new_dict)
```
输出结果为:
```
{1: 'a', 2: 'a', 3: 'a', 4: 'b', 5: 'b', 6: 'b', 7: 'c', 8: 'c', 9: 'c'}
```
相关问题
python中字典键值对反转
在Python中,可以使用字典推导式和zip函数来实现字典键值对的反转。具体的代码如下:
```python
# 原始字典
my_dict = {'a': 1, 'b': 2, 'c': 3}
# 使用字典推导式和zip函数进行键值对反转
reversed_dict = {value: key for key, value in my_dict.items()}
# 打印反转后的字典
print(reversed_dict)
```
输出结果为:
```
{1: 'a', 2: 'b', 3: 'c'}
```
这段代码中,`my_dict.items()`返回一个包含原始字典键值对的可迭代对象。通过使用`for`循环遍历这个可迭代对象,可以获取到每个键值对。然后,使用`value: key`的形式创建一个新的键值对,将原始字典中的值作为新字典的键,原始字典中的键作为新字典的值。最后,使用大括号`{}`将这些新键值对组成一个字典。
python 字典键值互换
可以使用字典推导式来实现字典键值互换,代码如下:
```python
my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
# 字典键值互换
new_dict = {v: k for k, v in my_dict.items()}
print(new_dict) # 输出结果:{'value1': 'key1', 'value2': 'key2', 'value3': 'key3'}
```
在这个例子中,我们使用了字典推导式来创建一个新的字典 `new_dict`。我们遍历了原始字典 `my_dict` 中的键值对,然后将键和值互换,最终得到了一个新的字典,其中原始字典中的值变成了新字典中的键,原始字典中的键变成了新字典中的值。