2025-02-24 14:26:05
#!/usr/bin/env python
# coding: utf-8
#
# filename: lpart.py
# author: Tim Wang
# date: Dec., 2013
A=[['A','A1'],['B','A2'],['C','A3'],['D','A4']]
B=[['A','B1'],['B','B2'],['C','B3'],['D','B4']]
C=[['A','C1'],['B','C2'],['C','C3'],['D','C4']]
D=[['A','D1'],['B','D2'],['C','D3'],['D','D4']]
R = zip(zip(*A)[1], zip(*B)[1], zip(*C)[1], zip(*D)[1])
print R
dic1={'A':1,'B':2,'C':3}
dic2={'A':11,'B':22,'C':33}
dic3={'A':111,'B':222,'C':333}
keys = dic1.keys()
values = zip(
zip(*dic1.items())[1],
zip(*dic2.items())[1],
zip(*dic3.items())[1]
)
dic_all=dict(zip(keys, values))
print dic_all
A=[['A','A1'],['B','A2'],['C','A3'],['D','A4']]
B=[['B','B2'],['A','B1'],['D','B4'],['C','B3']]
C=[['A','C1'],['B','C2'],['D','C4']]
D=[['B','D2'],['C','D3'],['D','D4']]
dicts = map(dict, (A,B,C,D))
totalkeys = reduce(lambda x,y: x|set(y.keys()), dicts, set())
dict_all = dict([(k, filter(None, map(lambda x: x.get(k), dicts)))
for k in totalkeys])
print dict_all
>python -u "lpart.py"
[('A1', 'B1', 'C1', 'D1'), ('A2', 'B2', 'C2', 'D2'), ('A3', 'B3', 'C3', 'D3'), ('A4', 'B4', 'C4', 'D4')]
{'A': (1, 11, 111), 'C': (3, 33, 333), 'B': (2, 22, 222)}
{'A': ['A1', 'B1', 'C1'], 'C': ['A3', 'B3', 'D3'], 'B': ['A2', 'B2', 'C2', 'D2'], 'D': ['A4', 'B4', 'C4', 'D4']}
>Exit code: 0 Time: 0.048
列表第一个元素不是固定的而且顺序也不一定
上面代码的第三个段落就是适应"列表第一个元素不是固定的而且顺序也不一定"情况的
2025-02-24 05:55:03
A=[['A','A1'],['B','A2'],['C','A3'],['D','A4']]
B=[['A','B1'],['B','B2'],['C','B3'],['D','B4']]
C=[['A','C1'],['B','C2'],['C','C3'],['D','C4']]
D=[['A','D1'],['B','D2'],['C','D3'],['D','D4']]
arr=[A,B,C,D]
dic_all={x[0][0]:[y[1] for y in x] for x in zip(*arr)}
list_all=[[x[0][0]]+[y[1]for y in x] for x in zip(*arr)]
if __name__=='__main__':
print(list_all)
print(dic_all)
结果:
[['A', 'A1', 'B1', 'C1', 'D1'], ['B', 'A2', 'B2', 'C2', 'D2'], ['C', 'A3', 'B3', 'C3', 'D3'], ['D', 'A4', 'B4', 'C4', 'D4']]
{'D': ['A4', 'B4', 'C4', 'D4'], 'A': ['A1', 'B1', 'C1', 'D1'], 'C': ['A3', 'B3', 'C3', 'D3'], 'B': ['A2', 'B2', 'C2', 'D2']}
列表第一个元素不是固定的而且顺序也不一定
2025-02-24 14:22:03