簡體   English   中英

如何將列表元素與元組元素匹配?

[英]How can I match list elements with tuple elements?

我有以下列表和元組列表:

adsh_list_sub
['0000007084-22-000008', '0000766421-22-000009', '0000320193-22-000007']
cik_list
['7084', '766421', '320193']
adsh_cik_tuple
[('0000007084-22-000008', '7084'),
 ('0000766421-22-000009', '766421'),
 ('0000320193-22-000007', '320193')]
adsh_list_num
['0000007084-22-000008',
 '0000007084-22-000008',
 '0000320193-22-000007',
 '0000320193-22-000007',
 '0000766421-22-000009',
 '0000766421-22-000009',
 '0000320193-22-000007',
 '0000320193-22-000007',
 '0000007084-22-000008',
 '0000007084-22-000008',
 '0000007084-22-000008',
 '0000007084-22-000008',
 '0000007084-22-000008',
 '0000007084-22-000008',
 '0000320193-22-000007',
 '0000320193-22-000007',
 '0000007084-22-000008']

注意
(1) 'adsh_list_num' 中的所有元素都是 'adsh_list_sub' 的元素
(2) 'adsh_list_num' 中的所有元素通過'adsh_cik_tuple' 與一個cik 元素配對

如何生成一個新列表 'cik_num' 使得 'cik_num' 與 'adsh_list_num' 相同,除了它不包含 adsh 元素而是來自 'adsh_cik_tuple' 的 cik 元素?

(在本例中,cik 元素的字符串不必總是包含在 'adsh' 元素中。)

預期輸出:

['7084',
 '7084',
 '320193',
 '320193',
 '766421',
 '766421',
 '320193',
 '320193',
 '7084',
 '7084',
 '7084',
 '7084',
 '7084',
 '7084',
 '320193',
 '320193',
 '7084']

您可以從元組列表創建一個字典,然后使用列表推導使用生成的映射讀取結果:

mapping = dict(adsh_cik_tuple)
[mapping[item] for item in adsh_list_num]

這輸出:

[
 '7084', '7084', '320193', '320193', '766421', '766421', '320193', '320193', 
 '7084', '7084', '7084', '7084', '7084', '7084', '320193', '320193', '7084'
]

暫無
暫無

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

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