我有三个列表,基本上我想要在for循环中一次性存储它们的值。以下是我想要完成的事情
a = ['abc', 'efg']
b = ['hij', 'klm']
c = ['nop', 'qrs']
for i, g, t in a, b, c:
Insert into database %i and %j and %c
答案 0 :(得分:5)
您可以使用zip
内置功能:
for i, g, t in zip(a, b, c):
Insert into database %i and %g and %t
zip([iterable,...])
此函数返回元组列表,其中包含第i个元组 来自每个参数序列或迭代的第i个元素
您可以阅读docs了解更多信息
注意:强>
如果您的列表不同(按长度),您可以使用itertools lib中的izip_longest
。
itertools.izip_longest(* iterables [,fillvalue])创建一个
的迭代器聚合每个迭代的元素。如果迭代是 长度不均匀,缺少值用fillvalue填充。 迭代继续,直到最长的可迭代用尽。
有关izip_longest的详细信息,请阅读here
答案 1 :(得分:0)
与其他地方提供的zip
答案相比,另一种可能不太干净的解决方案是:
a=[1,2,3]
b=[4,5,6]
for i in range(len(a)):
insert_into_database(a[i],b[i])
也可以,但不太干净/优雅:)