Я пытаюсь выяснить, как использовать приведенный ниже код со списком.
link = 'page={}&index={}'
index = 10
links = []
for page in range(2, 4):
links.append(link.format(page, index))
index += 10
Я пробовал много разных способов и Googled как можно больше (возможно, я не ищу правильные условия?). Я все еще не могу понять это. Ниже приведен один из способов, которым я пытался, но я получаю ошибку 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
: builtin для увеличения 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
в вашем примере.
Вы не можете использовать выражения + = (или любое утверждение, если на то пошло) в понимании списка. В вашем случае используйте zip
и itertools.count
:
import itertools
[link.format(page, index) for page, index in zip(range(2, 4), itertools.count(10, 10))]
[link.format(page, 10*(page-1)) for page in range(2, 4)]
enumerate
здесь излишне, учитывая, чтоi == page - 1
range(2, 4)
вы можете иметь диапазон с шагами или просто любой итеративный.