如何在Python中仅一次迭代两个列表中的每个项目[重复]

问题描述 投票:-1回答:1

我正在尝试打印具有同时迭代两个列表的格式的字符串。我提出的第一个解决方案是:

    fruits = ["banana","apple","pineapple","coconut","strawberry","watermelon"]
names = ["pao", "sam", "charlie", "ray","gaby","caro"]
for x in names:
    print("{} likes {}".format(x,fruits[names.index(x)]))
pao likes banana
sam likes apple
charlie likes pineapple
ray likes coconut
gaby likes strawberry
caro likes watermelon

并且有效,但是我想知道是否还有另一种方法可以做到这一点

python list loops format
1个回答
0
投票

您选择了最糟糕的直接方式。最好也对索引进行迭代:

for idx, who in enumerate(names):
    print("{} likes {}".format(who ,fruits[idx]))

更好的是简单地遍历对的压缩列表:

for who, snack in zip(names, fruits):
    print("{} likes {}".format(who, snack)
© www.soinside.com 2019 - 2024. All rights reserved.