簡體   English   中英

按索引和名稱匹配三個列表

[英]Match three lists by index and name

我所追求的例子:

main_names = ['apple', 'orange', 'banana', 'pear', 'mango', 'peach', 'strawberry']
changing_names = ['apple', 'banana', 'cucumber', 'peach', 'pear', 'fish']
changing_values = [100,      200,       300,       400,    500,    600]


output_names = ['apple', 'NA', 'banana', 'pear', 'NA', 'peach', 'NA']
output_values = [100,    'NA',   200,      500,  'NA',   400,   'NA'

added_names = ['cucumber', 'fish']
added_values = [300, 600]

我使用我的上一個問題作為參考, 通過索引和名稱匹配兩個列表 ,在這里我學會了如何成功檢索輸出/添加名稱。

對於某些背景,changing_names和changing_values通過它們的索引鏈接(這是我遇到麻煩的地方,我會使用dict,但不確定如何以所需的方式操作dict)

我不知道如何才能更改/ addtings_values列表以保持與output_names列表的索引一致。 如果有一種方法可以處理多個列表,同時又避免通過索引將它們鏈接在一起,我將非常高興知道。

字典和一些列表理解是一種方法:

mapper = dict(zip(changing_names, changing_values))

output_names = [x if x in changing_names else 'NA' for x in main_names]
output_values = [mapper.get(x, 'NA') for x in output_names]

added_names = [x for x in changing_names if x not in main_names]
added_values = [mapper.get(x, 'NA') for x in added_names]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM