我想做有条件的循环。
In [1] : data_1
Out [1] :
text1
text2
In [2] : data_2
Out [2] :
a
b
c
d
e
我希望 data_1 中的每个文本仅适用于 data_2 中的 2 个文本。所以,输出将是这样的。
text1, a
text1, b
text2, c
text2, d
如果 data_1 没有任何数据,它将停止。我输入了这样的脚本,但没有用。
for i in range(len(data_1)):
for j in range(0, len(data_2)):
print(i, j)
输出结果如下。
0 0
0 1
0 2
0 3
0 4
1 0
1 1
1 2
1 3
1 4
请您参考如下方法:
一种方法是使用 itertools 库和 zip(),例如:
In []:
import itertools as it
n = 2 # No. of repetitions
list(zip(it.chain.from_iterable(it.repeat(x, n) for x in data_1), data_2))
Out[]:
[('text1', 'a'), ('text1', 'b'), ('text2', 'c'), ('text2', 'd')]
或者如果你想print()输出每个元素:
In []:
for x in zip(it.chain.from_iterable(it.repeat(x, n) for x in data_1), data_2):
print(', '.join(x))
Out[]:
text1, a
text1, b
text2, c
text2, d
