抱歉描述不清楚,我已经编辑了这个问题。
英语不是我的母语,所以我可能表达不是很好。 :)
我有一个这样的字符串列表:
list1=['1A','1B','1C','1D','1E']
list2=['_foo','_bar','_baz','_qux']
_foo=['30','40']
_bar=[]
_baz=['60','70']
_qux=[]
我想遍历 list1
和 list2
,并匹配
_foo
和 _baz
中的指定项。
具体来说,list2
中的item 表示另一个列表。例如, _foo
在 list2
中也是一个列表 _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/