Re: [问题] 3个list交叉合并

楼主: cutekid (可爱小孩子)   2018-11-13 15:03:27
# 顺序 mapping table
seq = [(0,1,2),(1,2,0),(2,0,1)]
# 计算期望
result = []
row = zip(Cell_1,Cell_2,Cell_3,UL1,UL2,UL3)
for item in row:
index = item[3:].index("a") # get sequence
res = map(lambda x:item[x] if item[x] != 'NAV' else '',seq[index])
result.append('-'.join(filter(None,res)))
#印出结果
print(zip(Cell_1,Cell_2,Cell_3,UL1,UL2,UL3,result))
※ 引述《radiant77 (七七)》之铭言:
: 大家好,小弟完全是外行人,因工作关系要用python从仪器抓出一些资料整理
: 目前抓出来的list有6组,需要将Cell_1,2,3合并成一组list
: Cell_1对应UL1,Cell_2对应UL2,Cell_3对应UL3
: UL1,2,3是用来排序的,有a的排前面,再依序往后接满3组,用"-"连结
: NAV为无资料,不须理会。
: 以下是为了方便阅读用pandas的DataFrame打印出来的结果
: 因为list比较长,只撷取部分内容
: 期望结果是我自己填的,想将Cell_1,2,3合并成期望结果的list
: index Cell_1 Cell_2 Cell_3 UL1 UL2 UL3 期望结果
: .. ... ... ... ... ... ...
: 10 4A NAV NAV a NAV NAV 4A
: 11 20A 20A NAV a NAV NAV 20A-20A
: 12 20A 1A NAV a NAV NAV 20A-1A
: 13 20A 1A NAV NAV a NAV 1A-20A
: 14 5A 4A 4A a NAV NAV 5A-4A-4A
: 15 5A 4A 4A NAV a NAV 4A-4A-5A
: 16 2A 2A 2A a NAV NAV 2A-2A-2A
: 第一次在本版发问,如果有不清楚的地方我再补充
作者: radiant77 (七七)   2018-11-13 15:38:00
感谢! 最后只需要print result就是我要的结果!

Links booklink

Contact Us: admin [ a t ] ucptt.com