在python中的for循环中将多个列表值存储在多个变量中

时间:2017-02-20 10:07:23

标签: python python-2.7

我有三个列表,基本上我想要在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

2 个答案:

答案 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])

也可以,但不太干净/优雅:)