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