在Python中,我有两个列表ids
和gos
,两者都有相同的长度(即相等的行数),但gos每行可以有多个元素(即,它是一个列表列表)而ids每行只有1个元素
例如:
ids = ['1','2','3']
gos = [['a','b','c'],['d', 'e'], ['f']]
我想打印出id中的每个id多次,因为gos列表中有go-elements后跟gos列表中的一个相应元素,每次都在新行上。
我希望这能澄清我正在寻求的输出:
'1' 'a'
'1' 'b'
'1' 'c'
'2' 'd'
'2' 'e'
'3' 'f'
答案 0 :(得分:1)
使用zip:
for i,g in zip(ids, gos):
for ge in g:
print i,ge
输出:
1 a
1 b
1 c
2 d
2 e
3 f
答案 1 :(得分:0)
您可以尝试使用这些简单的嵌套 for循环:
for i, e1 in enumerate(ids):
for e2 in gos[i]:
print e1, e2
<强>输出:强>
1 a
1 b
1 c
2 d
2 e
3 f
注意: enumerate
函数用于保留索引的计数,该函数将用于访问gos
的相应元素。
答案 2 :(得分:0)
另一种方法
from itertools import product,imap
ids = ['1','2','3']
gos = [['a','b','c'],['d', 'e'], ['f']]
for i in imap(product,ids,gos):
for j in i:
print j[0],j[1]
答案 3 :(得分:0)
另一种做法..
ids = "1 2 3".split()
gos = ['a b c'.split(), 'c d'.split(), ['f']]
import itertools
ig = [zip([i] * len(g), g)
for i, g in zip(ids, gos)]
for i, g in itertools.chain.from_iterable(ig):
print(i, g)
答案 4 :(得分:0)
我希望这是一种简单的方法
for i in range(len(gos)):
for k in gos[i]:
print ids[i], k
输出
1 a
1 b
1 c
2 d
2 e
3 f