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

在python的for循环中,在多个变量中存储多个列表值,python,python-2.7,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 您可以使用zip内置功能: for i, g, t in zip(a, b, c): Insert into database %i and %g and

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

您可以使用
zip
内置功能:

for i, g, t in zip(a, b, c):
    Insert into database %i and %g and %t
zip([iterable,…])

此函数返回元组列表,其中第i个元组包含 每个参数序列或iterables的第i个元素

有关更多信息,请阅读

注意: 如果列表长度不相等,可以使用itertools库中的
izip_longest

izip_longest(*iterables[,fillvalue])生成一个迭代器

聚合每个iterables中的元素。如果伊特拉伯雷人 如果长度不均匀,缺少的值将用fillvalue填充。 迭代将继续,直到最长的iterable耗尽


有关izip_longest的更多信息,请阅读您可以使用
zip
内置功能:

for i, g, t in zip(a, b, c):
    Insert into database %i and %g and %t
zip([iterable,…])

此函数返回元组列表,其中第i个元组包含 每个参数序列或iterables的第i个元素

有关更多信息,请阅读

注意: 如果列表长度不相等,可以使用itertools库中的
izip_longest

izip_longest(*iterables[,fillvalue])生成一个迭代器

聚合每个iterables中的元素。如果伊特拉伯雷人 如果长度不均匀,缺少的值将用fillvalue填充。 迭代将继续,直到最长的iterable耗尽


有关izip_longest的更多信息,请阅读

与其他地方提供的
zip
答案相比,另一种可能不太干净的解决方案是:

a=[1,2,3]
b=[4,5,6]
for i in range(len(a)):
    insert_into_database(a[i],b[i])

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

另一个可能比其他地方提供的
zip
答案更干净的解决方案是:

a=[1,2,3]
b=[4,5,6]
for i in range(len(a)):
    insert_into_database(a[i],b[i])

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

挑剔:
zip
是一个内置函数,不是关键字。@WillemVanOnsem,谢谢,修复了这个问题。谢谢@omri_saadon。我现在可以在数据库中插入多个值。我认为zip只能用于压缩两个列表并将它们转换为字典。从没想过zip可以这样工作。挑剔:
zip
是一个内置函数,不是关键字。@WillemVanOnsem,谢谢,修复了这个问题。谢谢@omri_saadon。我现在可以在数据库中插入多个值。我认为zip只能用于压缩两个列表并将它们转换为字典。从来没有想过zip能以这种方式工作。可能的重复可能的重复