Python在一个列表里寻找两个key共同的value
时间: 2023-11-27 09:50:32 浏览: 229
可以使用一个字典来解决这个问题,具体的方法是:
1. 遍历列表中的每一个字典,将字典中的key-value对存入一个新的字典中;
2. 对于每一个新的key,如果该key已经存在于新字典中,则将当前字典的value添加到该key对应的列表中,否则就新建一个key-value对,将当前字典的value作为列表中的第一个元素;
3. 最后,遍历新字典中的每一个key-value对,如果列表中元素的数量大于1,则说明该key在两个或多个字典中都存在,共同的value就是该列表中的元素。
下面是一个示例代码,假设我们要在下面这个列表中寻找key1和key2共同的value:
```
data = [
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'},
{'key1': 'value4', 'key2': 'value2', 'key3': 'value6'},
{'key1': 'value7', 'key2': 'value8', 'key3': 'value9'}
]
```
代码如下:
```python
from collections import defaultdict
def find_common_value(data, key1, key2):
# 新建一个字典
new_dict = defaultdict(list)
# 遍历每一个字典
for d in data:
# 将字典中的key-value对存入新字典中
new_dict[d[key1]].append(d[key2])
# 遍历新字典,找到共同的value
common_values = []
for key, values in new_dict.items():
if len(values) > 1:
common_values.extend(values)
return common_values
common_values = find_common_value(data, 'key1', 'key2')
print(common_values)
```
输出结果:
```
['value2']
```
可以看到,key1和key2共同的value是'value2'。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)