在python的for循环中,在多个变量中存储多个列表值
我有三个列表,基本上我想要在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
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能以这种方式工作。可能的重复可能的重复