python - Python - 映射两个列表(不同大小)?
问题描述
例如,我有以下两个列表:
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')]
推荐阅读
- tensorflow - pytorch 未在 gpu 上运行而为真
- python - 使用 swarmplot 生成的 beeswarm 图中的数据点没有分散?
- python - 根据条件修改 numpy 数组的值
- pine-script - 如何在 alertcondition() 中检查真/假结果
- json - 如何在android的sqlite中快速批量插入json数据
- javascript - 使用 onChange 更新父组件的状态
- javascript - 如何使本地网络上的 WebRTC 视频流正常工作?
- vim - Vim foldexpr匹配pattern1 OR pattern2?
- graphics - 如何在世界空间中进行遮挡剔除
- r - 在 r (frm) 中使用分数响应模型中的因子