python - 如何在列表理解中使用 +=(添加 AND)

标签 python python-3.x

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

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

我尝试了很多不同的方法,并尽可能多地进行了谷歌搜索(也许我没有在搜索正确的术语?)。我仍然无法弄清楚。以下是我尝试过的一种方法,但出现了 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']

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

最佳答案

您可以使用 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

关于python - 如何在列表理解中使用 +=(添加 AND),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50877672/

相关文章:

python - 如何在 SQLAlchemy 中过滤列上的 SQL 查询?

python - 基于pandas dfs中的部分字符串匹配进行合并

python - 查找与条件匹配的第一个序列项

python - DataFrameGroupby 对象的滚动操作

python - 如何在以下 Python 代码中权衡套索回归的观察结果?

python - 在 for 循环中用 “key: value” 对打印字典

python - 连接不同频率的正弦曲线

python - 混合 xml/文本解析 python

python - PEP0484 类型提示 : Annotating argument of given class, 不是实例

python - 在 Python 3.3 中安装 PyMedia 的问题