|
发表于 2018-8-14 10:33:54
|
显示全部楼层
本帖最后由 graceasyi 于 2018-8-14 10:35 编辑
第一种方法只能处理顺序的情况,就是题目中的dict。第二种方法可处理非顺序情况。
- def fun195_1(dict1, key):
- tmp = []
- for k, v in dict1.items():
- tmp.append(k)
- if key == k:
- key = v
- return None if key in tmp else key
- def fun195_2(dict1, key):
- v = dict1[key]
- tmp = []
- while True:
- tmp.append(v)
- try:
- v = dict1[v]
- if v in tmp:
- return None
- except KeyError:
- break
- return v
- d1 = {"A": "B", "B": "C", "C": "D", "E": "F"}
- d2 = {"A": "B", "B": "C", "C": "D", "D": "B"}
- d3 = {"A": "B", "C": "D", "B": "C", "D": "F", "F": "E", "E": "G"}
- d4 = {"A": "B", "C": "D", "B": "C", "D": "F", "F": "E", "E": "D"}
- print(fun195_2(d1, 'A'))
- print(fun195_2(d1, 'E'))
- print(fun195_2(d2, 'A'))
- print(fun195_2(d3, 'B'))
- print(fun195_2(d4, 'A'))
复制代码
结果:
D
F
None
G
None |
|