对于一字典列表List<dictionary<string,string>>,如果字典b的值等于字典a的键,那么称b为a的祖字典,b为a的后字典。字典a的祖字典的祖字典也是a的祖字典。设一字典的键为string,求其所有的祖字典列表。
时间: 2023-12-29 19:24:20 浏览: 83
Python列表(list)、字典(dict)、字符串(string)基本操作小结
以下是Python实现,可以求出一个字典的所有祖字典列表:
```python
def find_ancestors(dic_list, target_dic):
ancestors = []
for dic in dic_list:
if target_dic['key'] in dic.values():
ancestors.append(dic)
ancestors.extend(find_ancestors(dic_list, dic))
return ancestors
```
其中,`dic_list`是一个字典列表,`target_dic`是需要查找祖字典的目标字典,`target_dic`中的`'key'`是目标字典的键。函数返回一个字典列表,即目标字典的所有祖字典。
举个例子,假设有以下字典列表:
```python
dic_list = [
{'key': 'a', 'value': '1'},
{'key': 'b', 'value': '2'},
{'key': 'c', 'value': '3'},
{'key': 'd', 'value': '4'},
{'key': 'e', 'value': '5'},
{'key': 'f', 'value': '6'},
{'key': 'g', 'value': 'a'},
{'key': 'h', 'value': 'b'},
{'key': 'i', 'value': 'c'},
{'key': 'j', 'value': 'd'},
{'key': 'k', 'value': 'e'},
{'key': 'l', 'value': 'f'},
{'key': 'm', 'value': 'g'},
{'key': 'n', 'value': 'h'},
{'key': 'o', 'value': 'i'},
{'key': 'p', 'value': 'j'},
{'key': 'q', 'value': 'k'},
{'key': 'r', 'value': 'l'},
{'key': 's', 'value': 'm'},
{'key': 't', 'value': 'n'},
{'key': 'u', 'value': 'o'},
{'key': 'v', 'value': 'p'},
{'key': 'w', 'value': 'q'},
{'key': 'x', 'value': 'r'},
{'key': 'y', 'value': 's'},
{'key': 'z', 'value': 't'}
]
```
如果我们要查找键为`'g'`的字典的所有祖字典,可以这样调用函数:
```python
target_dic = {'key': 'g', 'value': 'a'}
ancestors = find_ancestors(dic_list, target_dic)
print(ancestors)
```
输出结果为:
```
[{'key': 'a', 'value': '1'}, {'key': 'g', 'value': 'a'}]
```
即键为`'g'`的字典的所有祖字典为键为`'a'`和键为`'g'`的字典。
阅读全文