python - 如何在列表理解中使用 +=(添加 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']
如果有人有任何想法,将不胜感激。谢谢!
解决方案
您可以使用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
在你的例子中一样。
推荐阅读
- node.js - 如何使用等待函数从 mongodb 中检索值?
- visual-studio-code - TextMate 语法在 VS Code 上没有任何匹配项
- python - 如何在python中关闭套接字连接?
- go - 如何导入路线
- python-3.x - 无法将二进制字符串解码为 Unicode 省略号
- sql - 将数据从非生产数据库复制到生产数据库
- php - 有没有办法将电报组的用户与网站中的用户匹配?
- python - 如何从列表中每行显示 5 个数字?
- c# - C# 正则表达式解析类 json 的顶部对象
- android - 在从 BaseObservable 扩展的类之外实现 BindingAdapter