- 论坛徽章:
- 0
|
- table="""EMP_NAME SUP_NAME
- A Y
- B Y
- C Y
- D Y
- E X
- F X
- G X
- H X
- I X
- J W
- K W
- L W
- W Z
- X Z
- Y Z
- """
- from collections import defaultdict
- import re
- s_e=defaultdict(list)
- p = re.compile("(\S+)\s*(\S+)\n",re.M)
- for e,s in p.findall(table):
- s_e[s].append(e)
- def get_e(a):
- if a in s_e:
- rst = s_e[a][:]
- for x in s_e[a]:
- rst += get_e(x)
- return rst
- else:
- return []
- print "Z:", get_e("Z")
- print "X:", get_e("X")
复制代码 回复 1# luiszhu - C:\Python27\python.exe C:/workspace/untitled/s_e.py
- Z: ['W', 'X', 'Y', 'J', 'K', 'L', 'E', 'F', 'G', 'H', 'I', 'A', 'B', 'C', 'D']
- X: ['E', 'F', 'G', 'H', 'I']
复制代码 |
|