[英]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.