python - 组合不同列表中的项目,python

标签 python

抱歉描述不清楚,我已经编辑了这个问题。

英语不是我的母语,所以我可能表达不是很好。 :)

我有一个这样的字符串列表:

list1=['1A','1B','1C','1D','1E']
list2=['_foo','_bar','_baz','_qux']
_foo=['30','40']
_bar=[]
_baz=['60','70']
_qux=[]

我想遍历 list1list2,并匹配 _foo_baz 中的指定项。

具体来说,list2 中的item 表示另一个列表。例如, _foolist2 中也是一个列表 _foo=['30','40']。但是 _bar 为空。如果 list2 中的项目不是空列表,则将 list1 中的项目映射到 list2 并将它们组合在一起,如输出格式。

我希望输出是这样的:

1A-30,1A-40,1A-60,1A-70
1B-30,1B-40,1B-60,1B-70
1C-30,1C-40,1C-60,1C-70
1D-30,1D-40,1D-60,1D-70
1E-30,1E-40,1E-60,1E-70

最佳答案

在 python 中(无论是 2 还是 3)你可以做类似的事情

list1=['1A','1B','1C','1D','1E']
list2=['_foo','_bar','_baz','_qux']
_foo=['30','40']
_bar=[]
_baz=['60','70']
_qux=[]
comb = {}

# NEW
for _i in list2:
    comb[_i] = globals()[_i]

for _i in list1:
    output=[]
    for _j in list2:
        output.extend([_i+'-'+ _k for _k in comb[_j]])
    print(','.join(output))

它会返回

1A-30,1A-40,1A-60,1A-70
1B-30,1B-40,1B-60,1B-70
1C-30,1C-40,1C-60,1C-70
1D-30,1D-40,1D-60,1D-70
1E-30,1E-40,1E-60,1E-70

编辑

由于您完全改变了问题本身,我同意@Xavier Combelle,现在这个答案是他答案的更多扩展。我添加的是一种使用(局部或全局)变量而不是硬编码的方法。检查 globals 的文档或 locals .

希望对你有帮助

关于python - 组合不同列表中的项目,python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33590880/

相关文章:

python - 使用Python 3优化去除线条

python - 如何在pytorch对象检测中添加转换

python - 将 Teradata 查询读入 Pandas

查找正则表达式匹配的 Pythonic 方法

python - XGBoost plot_importance 不显示特征名称

Python二进制格式异常

python - 如何使 html 提交按钮在 Flask 中起作用?

python - psycopg2 与 MySQLdb 反斜杠转义行为

python - 如何使用 Python SDK 使用现有视频在 Facebook 中创建视频广告?

python - Azure Detect faces API,如何将URL图片更改为本 map 片?