例如,我有以下两个列表:
name = ["Joe Harris", "Susie Carmike"]
method = ["Lab"]
我如何将这两个列表映射到下面的输出?或者除了Python中的列表之外,是否有更好的方法来映射不同大小的元素以获得这样的输出?
name method
Joe Harris Lab
Susie Carmike Lab
您可以像下面这样使用itertools.product
:
import itertools
name = ["Joe Harris", "Susie Carmike"]
method = ["Lab"]
somelists = [name] + [method]
for element in itertools.product(*somelists):
print(element)
输出:
('Joe Harris', 'Lab')
('Susie Carmike', 'Lab')
或:
>>> list(itertools.product(*somelists))
[('Joe Harris', 'Lab'), ('Susie Carmike', 'Lab')]
创建DataFrame试试这个:
data = list(itertools.product(*somelists))
df = pd.DataFrame(data, columns=['name', 'method'])
print(df)
输出:
name method
0 Joe Harris Lab
1 Susie Carmike Lab
您可以像下面这样对multi list
使用此方法:
import itertools
name = ["Joe Harris", "Susie Carmike", "Joe Harris2"]
method = ["Lab", 'Lab2']
approach = ['app1', 'app2']
somelists = [name] + [method] + [approach]
list(itertools.product(*somelists))
输出:
[('Joe Harris', 'Lab', 'app1'),
('Joe Harris', 'Lab', 'app2'),
('Joe Harris', 'Lab2', 'app1'),
('Joe Harris', 'Lab2', 'app2'),
('Susie Carmike', 'Lab', 'app1'),
('Susie Carmike', 'Lab', 'app2'),
('Susie Carmike', 'Lab2', 'app1'),
('Susie Carmike', 'Lab2', 'app2'),
('Joe Harris2', 'Lab', 'app1'),
('Joe Harris2', 'Lab', 'app2'),
('Joe Harris2', 'Lab2', 'app1'),
('Joe Harris2', 'Lab2', 'app2')]
试试itertools.cycle
:
>>> from itertools import cycle
>>> list(zip(name, cycle(method)))
[('Joe Harris', 'Lab'), ('Susie Carmike', 'Lab')]
>>>