如何将列表元素与元组元素匹配?
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 元素的字符串不必总是包含在 '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'
]
我有以下列表和元组列表:
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_num' 使得 'cik_num' 与 'adsh_list_num' 相同,除了它不包含 adsh 元素而是包含来自'adsh_cik_tuple'?
(在本例中,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'
]