首页 > 解决方案 > 如何在列表理解中使用 +=(添加 AND)

问题描述

我试图弄清楚如何将下面的代码与列表理解一起使用。

link = 'page={}&index={}'
index = 10
links = []
for page in range(2, 4):
    links.append(link.format(page, index))
    index += 10

我尝试了许多不同的方法并尽可能多地用 Google 搜索(也许我没有在搜索正确的术语?)。我仍然无法弄清楚。以下是我尝试过的一种方法,但出现SyntaxError错误。

link = 'page={}&index={}'
index = 10
links = [link.format(link, index) for page in range(2, 4) index += 10]

这应该是列表理解的输出:

['page=2&index=10', 'page=3&index=20']

如果有人有任何想法,将不胜感激。谢谢!

标签: pythonpython-3.x

解决方案


您可以使用enumerate: 内置函数来增加index:

>>> [link.format(page, i*10) for i, page in enumerate(range(2, 4), start=1)]
['page=2&index=10', 'page=3&index=20']

这也适用于任何其他可迭代对象,而不仅仅是一个range(2, 4),例如字符串列表。因此,任何这样的迭代都可以用一个计数器变量来增加,就像index在你的例子中一样。


推荐阅读