Вопрос по python – Создание и расширение списка в одну строку

1
<code>mylist=[]
mylist.append(7)
mylist.extend(range(9,12))
</code>

может ли это быть сделано в одну строкуin python3?

Я чувствую, что это должно быть тривиально, но по какой-то причине я не могу вспомнить и не могу найти, как это сделать.

Ваш Ответ

3   ответа
8

Вы можете использовать этот лайнер:

mylist = [7] + list(range(9,12))

Возвращает нужный список:

[7, 9, 10, 11]
Error: User Rate Limit Exceededfor lid in [7] + range(9,len(row)):Error: User Rate Limit ExceededTypeError: can only concatenate list (not "range") to list o0'.
Error: User Rate Limit Exceeded o0'.
rangeError: User Rate Limit Exceededmylist = [7] + list(range(9, 12))
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded o0'.
1

for lid in [7] + range(9,len(row)):

буду работать

если вы работаете с Python 3. *, так как range теперь возвращает итератор, вам нужно явно преобразовать его в список

Опция 1:

for lid in [7] + list(range(9,len(row))):

Вариант 2:

for lid in itertools.chain([7],range(9,len(row))):
2

mylist = [7]

Или же:

mylist = list(range(9,12))

или, чтобы связать два вместе:

mylist = [7] + list(range(9,12))

Для более сложных конструкций лучше всего использовать списочные понимания. Например:

mylist = [ (irow,icol) for irow in range(1,10) for irow in range(1,10) if i > j ]

Более подробная информация о списках доступна по адресу: http://docs.python.org/tutorial/datastructures.html#list-comprehensions

(Edited отразить изменение в вопросе).

Похожие вопросы