Я новичок в Python и пытаюсь понять, как на самом деле работает понимание списка.

Я знаю, что если есть что-то подобное ...

myList = [n**3 for n in range(1,11)]

Мой вывод будет кубами от 1 до 10. перевод этого списка будет

for n in range(1,11):
    myList.append(n**3)

Моя проблема возникает, когда я хочу добавить кубы с 11 по 20 в один и тот же список, и я знаю, что могу сделать это с помощью цикла, как в предыдущем коде.

for n in range(11,21):
    myList.append(n**3)

Но я не хочу делать этот цикл, я хочу добавить эти новые элементы в мой список с другим пониманием списка

Так есть ли возможность продолжать добавлять элементы в список, используя другое понимание списка?

Что-то вроде mylist = mylist + anotherlist ?

Я не хочу использовать что-то вроде

myList = [n**3 for n in range(1,21)] 

Потому что это займет все больше и больше времени, если я хочу продолжать добавлять больше элементов

Я тоже стараюсь

myList = [n**3 for n in range(1,11)]
then
myList = [n**3 for n in range(11,21)]

Но это не работает спасибо за помощь

1
XavierJC 6 Июл 2019 в 18:05

3 ответа

Лучший ответ

Вы можете сделать, как показано ниже,

>>> mylist = [n**3 for n in range(1,11)]
>>> mylist += [n**3 for n in range(11,20)] # to update in-place use '+='.

< Сильный > Вывод :

[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 1331, 1728, 2197, 2744, 3375, 4096, 4913, 5832, 6859]
0
shaik moeed 6 Июл 2019 в 15:17

Эта команда поможет вам:

mylist.extend(anotherlist)
-1
Dirk Gently 6 Июл 2019 в 15:42

Вы также можете использовать метод extend списка:

lst = [n**3 for n in range(1,11)]
lst.extend(n**3 for n in range(11,20))
print(lst)

Печать :

[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000, 1331, 1728, 2197, 2744, 3375, 4096, 4913, 5832, 6859]
1
Andrej Kesely 6 Июл 2019 в 15:15