在我的python代码中,我有2个列表
myList = ["Example", "Example2", "Example3"]
mySecondList = ["0000", "1111", "2222"]
我需要打印这些,所以它们看起来像这样:
- Example 0000
- Example2 1111
- Example3 2222
有没有办法实现这个目标?
答案 0 :(得分:5)
是的,请查找zip
:
myList = ["Example", "Example2", "Example3"]
mySecondList = ["0000", "1111", "2222"]
for a, b in zip(myList, mySecondList):
print("- {} {}".format(a, b))
- Example 0000 - Example2 1111 - Example3 2222
如果列表大小相同,则上述方法有效,否则您应该从itertools
模块查看izip_longest
或zip_longest
,具体取决于您使用的python版本< / p>
答案 1 :(得分:0)
我建议您使用zip()
或zip_longest()
来解决问题。
但是,不使用任何built-in
模块/函数。您可以使用自己非常类似于zip()
函数的方法创建自己的“hacky”方法。
以下是一个例子:
def custom_zip(a, b, fill=None):
length = max(len(a), len(b))
for k in range(length):
if k > len(a):
yield fill, b[k]
elif k > len(b):
yield a[k], fill
else:
yield a[k], b[k]
a = ["Example", "Example2", "Example3"]
b = ["0000", "1111", "2222"]
for k, v in custom_zip(a,b):
print("- {} {}".format(k, v))
输出:
- Example 0000
- Example2 1111
- Example3 2222
另外,您可以查看official documentation中zip()
的等效内容。