Как сделать список в питоне от 1 до 100

Обновлено: 05.07.2024

Списки Python похожи на массивы в JavaScript. Это один из встроенных типов данных, использующийся для хранения наборов данных.

Базовое использование

Как создать список

Пустой список создается при помощи пары квадратных скобок:

Можно создать список, сразу содержащий какие-то элементы. В этом случае они перечисляются через запятую и помещаются в квадратные скобки. Элементы в списках могут быть гетерогенными (т. е., разных типов), хотя обычно бывают гомогенными (одного типа):

Для создания списков также может использоваться конструктор list:

Также при создании списков используется List Comprehension, к которому мы еще вернемся.

Обращение к элементам списка

Вывод всего списка:

Вывести отдельные элементы списка можно, обратившись к ним по индексу (не забываем, что отсчет начинается с нуля).

В Python для обращения к элементам можно использовать и отрицательные индексы. При этом последний элемент в списке будет иметь индекс -1, предпоследний — -2 и так далее.

Распаковка списков (для python-3). Если поставить перед именем списка звездочку, все элементы этого списка будут переданы функции в качестве отдельных аргументов.

Списки мутабельны

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

Элементы списка можно перегруппировать, используя для индексирования другой список.

Создадим новый список из элементов списка my_list , а индексы нужных элементов возьмем из списка my_index :

Методы списков

Метод len() возвращает длину объекта (списка, строки, кортежа или словаря).

len() принимает один аргумент, который может быть или последовательностью (например, строка, байты, кортеж, список, диапазон), или коллекцией (например, словарь, множество, frozenset).

index()

index() возвращает индекс элемента. Сам элемент передается методу в качестве аргумента. Возвращается индекс первого вхождения этого элемента (т. е., если в списке два одинаковых элемента, вернется индекс первого).

Первый результат очевиден. Второй и третий output демонстрируют возврат индекса именно первого вхождения.

Опциональные аргументы

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

При этом возвращаемый индекс — индекс элемента в целом списке, а не в указанном диапазоне.

Метод pop() удаляет и возвращает последний элемент списка.

Этому методу можно передавать в качестве параметра индекс элемента, который вы хотите удалить (это опционально). Если конкретный индекс не указан, метод pop() удаляет и возвращает последний элемент списка.

Если в списке нет указанного вами индекса, метод выбросит exception IndexError: pop index out of range .

Базовый функционал стека

Для реализации базового функционала стека в программах на Python часто используется связка метода pop() и метода append():

List Comprehension

List Comprehension это создание списка путем итерации в цикле уже существующего списка (с соблюдением указанных условий). Поначалу такой подход может казаться сложным, но когда разберетесь, вы поймете, насколько это просто и быстро.

Чтобы разобраться в list comprehension, нужно для начала обратиться к обычной итерации списка. В следующем простом примере показано, как вернуть новый список, состоящий только из четных чисел старого.

Давайте разберем этот пример. Сначала мы создаем список с числами. Затем создаем пустой список, в котором будут сохраняться результаты, полученные в цикле. Дальше идет сам цикл, в котором мы перебираем числа из первого списка и проверяем, являются ли они четными. Если число делится на 2 без остатка, мы добавляем его в список четных чисел. Для получения нужного результата нам потребуется 5 строк кода (без учета комментариев), да еще пробелы.

А теперь давайте посмотрим пример, в котором мы делаем все то же самое, но с помощью list comprehension.

Давайте возьмем еще пример. Создадим список, каждый элемент которого будет элементом старого списка, умноженным на 7.

С помощью list comprehension можно достичь того же результата:

Вообще list comprehension пишется в соответствии со следующей формулой:

В блоке вы указываете, что конкретно нужно сделать с элементом, который возвращает итерация объекта. В нашем примере это n * 7 , но операция может быть любой, как очень простой, так и очень сложной.

В блок нужно вставить имя объекта, который вы будете перебирать в цикле. В нашем примере это был список, но мог быть кортеж или диапазон.

List comprehension добавляет элемент из существующего списка в новый, если соблюдается какое-то условие. Этот способ лаконичнее, а в большинстве случаев еще и намного быстрее. Иногда применение list comprehension может ухудшить читаемость кода, поэтому разработчику нужно действовать по ситуации.

Примеры использования list comprehension с условиями

Вносим в новый список только четные числа:

Это эквивалентно следующему циклу:

List comprehension может также содержать вложенные if-условия. Обратите внимание на следующий пример:

С применением list comprehension этот код можно переписать следующим образом:

С list comprehension также может использоваться if-else. В следующем примере мы берем диапазон чисел от 0 до 10 и добавляем в наш список все четные числа из этого диапазона, а нечетные добавляем после умножения на -1.

Лаборатория Django-разработки

За 3 месяца отработай навыки Django-разработки до профессионального уровня на серьезном проекте под руководством наставника.

Все это можно представить в виде упорядоченно списка, который в Python задается с помощью оператора квадратных скобок:

[элемент1, элемент2, …, элементN]

Например, для хранения городов можно задать такой список:

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


Здесь синей рамкой отмечен сам список, внутри которого располагаются элементы. Если мы посмотрим тип объекта, на который ссылается переменая lst:

Но, если мы укажем не существующий индекс:

то возникнет ошибка. Чтобы этого избежать нам надо знать значение последнего индекса. Для этого можно воспользоваться функцией

которая возвращает число элементов в списке:

вернет значение 4. Но, так как индексы начинаются с нуля, то последний индекс будет равен:

lastIndex = len(lst) – 1

То есть, можно записать вот так:

но можно и проще, вот так:

Этот пример показывает, что при отрицательных индексах, мы начинаем движение с конца списка и значение -1 дает самый последний элемент.

Далее, для перебора элементов списка в Python очень удобно использовать цикл for:

Смотрите, как это легко и просто делается! Конечно, мы можем распечатать весь контейнер целиком, просто записав:

Но здесь нет перебора всех элементов, а просто печать содержимого. Вернемся к циклу. Здесь переменная city будет ссылаться на элементы внутри списка lst. Давайте выведем в консоль дополнительно еще тип выводимого значения:

Увидим везде строковый тип str. Но раз city ссылается на элементы списка, можно ли их изменить, присвоив этой переменной другое значение?

Если мы теперь выведем список lst в консоль:

то окажется, что список не изменился. Почему? Дело в том, что когда мы присваиваем переменной новое значение, то она просто начинает ссылаться на новый объект и на состоянии списка это никак не сказывается.


Вот этот момент работы переменных как ссылок на объекты всегда следует учитывать при программировании на Python. Также следует помнить, что в этом языке типы данных делятся на два класса: изменяемые и неизменяемые. Все предыдущие типы, что мы проходили на прошлых занятиях относились к неизменяемым. Это были:

числа, булевые значения, строки

Но вот список list относится к изменяемым типам, то есть, мы можем изменить его состояние, не создавая нового объекта. В самом простом случае мы можем воспользоваться таким синтаксисом:


Теперь вернемся к вопросу изменения элементов списка внутри цикла for. Предположим, у нас имеется список чисел:

и в цикле мы хотим его изменить на их квадраты. Для этого запишем цикл в таком виде:

Или, чтобы не указывать конкретное число в функции range, ее можно переписать так:

И программа будет работать со списком произвольной длины.

Во всех наших примерах мы создавали списки небольшой длины и потому могли их запросто записать в программе. Но что если требуется создать список размерностью в 100 или 1000 элементов? Для этого можно воспользоваться такой конструкцией, например:

создает список из 1000 элементов со значением 0. Фактически, мы здесь сначала создали список из одного нулевого элемента, а затем, размножили его до тысячи. Или, можно сделать так:

Ну хорошо, есть у нас список из 100 или 1000 или другого числа элементов. Но как нам теперь с ним работать, например, занести туда какие-либо данные. Для наглядности, предположим, пользователь вводит N чисел с клавиатуры (N<100) и пока он вводит положительные значения, мы их добавляем в список. Как только он ввел какое-либо отрицательное число, считывание прекращается и мы вычисляем среднее арифметическое введенных значений. Это можно реализовать так:

Теперь, когда мы в целом познакомились со списками, отметим следующие моменты. Список может состоять из произвольных данных, например:

Причем, его длина

будет равна 5, т.к. последний элемент – вложенный список здесь воспринимается как один отдельный элемент. И этот пример показывает как можно создавать двумерные списки:


Для доступа к конкретному числу следует сначала обратиться к первому списку:

а, затем, ко второму:

Получим значение 4. С этими списками можно выполнять все те же самые операции, о которых мы говорили ранее, например, изменить значение:

Далее, списки можно объединять друг с другом, используя оператор +:

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

И здесь обратите внимание, что мы объединяем именно списки, то есть, вот такая запись:

приведет к ошибке, т.к. 3 – это число, а не список.

возвращает True, если элемент, записанный слева, присутствует в списке, указанный справа. Иначе, значение False:

Или, можно делать так:

То есть, в качестве элемента может быть любой тип данных.

Следующие две полезные функции:

находят минимальное или максимальное числовое значение. И если в списке имеется не числовой элемент:

то эти функции приводят к ошибкам.

Также можно вычислять сумму элементов числового списка:

выполнять сортировку чисел по возрастанию:

или, по убыванию:

Эта функция возвращает новый объект-список, прежний d остается без изменений.

Наконец, можно сравнивать списки между собой:

В последнем сравнении получим False, т.к. списки равны, но если записать так:

то первый список будет больше второго. Здесь сравнение больше, меньше выполняется по тому же принципу, что и у строк: перебираются последовательно элементы, и если текущий элемент первого списка больше соответствующего элемента второго списка, то первый список больше второго. И аналогично, при сравнении меньше:

Все эти сравнения работают с однотипными данными:

сработает корректно, а вот так:

Задания для самопроверки

1. Дан список [-1, 0, 5, 3, 2]. Необходимо изменить его, увеличив каждое значение на 7.2.

2. Пользователь вводит с клавиатуры N значений (строки или числа). На их основе сформировать список, состоящий из продублированных элементов. (Например, из значений 1, 5, "abc" формируется список [1, 1, 5, 5, "abc", "abc"]).

3. Написать программу сложения двух матриц:

4. Пользователь вводит N значений в список. Необходимо проверить: было ли введено число 5.

Видео по теме


































































© 2022 Частичное или полное копирование информации с данного сайта для распространения на других ресурсах, в том числе и бумажных, строго запрещено. Все тексты и изображения являются собственностью сайта

С оздание списка в Python может понадобиться для хранения в них коллекции объектов. Списки могут хранить объекты всех типов в одном, в отличие от массива в другом языке программирования. Также размер списка доступен к изменению.

Ниже разберёмся, как устроены списки, как с ними работать и приведём 6 примеров из практики.

Что такое список

Список (list) — тип данных, предназначенный для хранения набора или последовательности разных элементов.

Его можно сравнить со списком покупок для магазина: точно так же вносятся элементы, их тоже можно добавлять и корректировать.

Как списки хранятся в памяти?

Базовая C-структура списков в Python (CPython) выглядит следующим образом:

Когда мы создаём список, в памяти под него резервируется объект, состоящий из 3-х частей:

  • PyObject_VAR_HEAD — заголовок;
  • ob_item — массив указателей на элементы списка;
  • allocated — количество выделенной памяти под элементы списка.

Объект списка хранит указатели на объекты, а не на сами объекты

Python размещает элементы списка в памяти, затем размещает указатели на эти элементы. Таким образом, список в Python — это массив указателей.

Базовая работа со списками

Объявление списка

Объявление списка — самый первый и главный этап его создания. Для объявления списка в Python существует несколько способов.

Вариант №1 : Через литерал (выражение, создающее объект):

>>> elements = [1, 3, 5, 6] >>> type(elements) >>> print(elements) [1, 3, 5, 6]

В данном примере мы создали список с заранее известными данными. Если нужен пустой список, в квадратных скобках ничего не указывается — elements = [] .

Вариант №2 : Через функцию list() :

>>> elements = list() >>> type(elements) >>> print(elements) []

В этом примере создается пустой список.

Обращение к элементу списка в Python

Некоторые операции, рассмотренные выше, имеют два варианта выбора элемента: либо выбор непосредственно его по имени, либо обращение по индексу. Индексом называют его порядковый номер, начиная с нуля.

Существует также отрицательный индекс, рассмотрим на примере:

elements = [1, 2, 3, 'word']

Индексы (позиции в списке) соответственно будут: 0, 1, 2, 3 .

Нумерация элементов списка в Python начиная с нуля

Отрицательными индексами называют расположение элементов в списке справа налево, то есть индекс значения "1" будет -4, а отрицательный индекс 'word' будет -1.

>>> elements[-4] 1 >>> elements[-1] 'word'

💡 Отрицательным индексом удобно пользоваться, когда необходимо обратиться к последнему в списке элементу, не высчитывая его номер. Любой конечный элемент будет с индексом, равным -1.

Добавление в список

В списках доступно добавление, изменение, удаление элементов. Рассмотрим каждый способ изменения элементов на примерах.

Для того чтобы добавить новый элемент в список, используется list.append(x) , где list — список, x — нужное значение.

>>> elements = [1, 2, 3, 'word'] >>> elements.append('meow') >>> print(elements) [1, 2, 3, 'word', 'meow']

Для простого примера, рассмотрим создание списка с нуля с помощью метода append() :

>>> elements = [] >>> elements.append(1) >>> elements.append('word') >>> elements.append('meow') >>> print(elements) [1, 'word', 'meow']

Добавление в список на указанную позицию

Немаловажно обратить внимание на метод list.insert(i, x) , где list — список, i — позиция, x — нужное значение.

>>> elements = [1, 2, 4] >>> print(elements) [1, 2, 4] >>> elements.insert(2, 3) >>> print(elements) [1, 2, 3, 4]

Изменение элементов списка

Изменение элементов списка происходит следующим образом: нужно выбрать элемент по индексу (порядковому номеру элемента) и присвоить новое значение.

>>> elements = [2, 4, 6] >>> elements[2] = 8 >>> print(elements) [2, 4, 8]

В примере выше мы заменили 6 на 8.

Не забывайте, что счёт начинается с нуля, и в данном списке цифра 6 это 2-й элемент

Удаление элемента из списка

Для удаление из списка используют инструкцию del list[i] , где list — список, i — индекс (позиция) элемента в списке:

>>> elements = [1, "test", 5, 7] >>> del elements[1] >>> print(elements) [1, 5, 7]

Удалять можно как из текущего списка, так и из вложенных списков:

>>> my_list = ["hello", "world", "!"] >>> elements = [1, my_list, "ok"] >>> del elements[1][2] >>> print(elements) [1, ['hello', 'world'], 'ok']

Можно удалять целыми диапазонами:

Еще один способ удаления из списка — list.remove(x) , где list — список, x — значение, которое нужно удалить:

>>> elements = [2, "test", 4] >>> elements.remove("test") >>> print(elements) [2, 4]

Как проверить наличие элемента в списке

Для того чтобы проверить существование какого-либо элемента в списке, нужно воспользоваться оператором in . Рассмотрим на примере:

>>> elements = ['слон', 'кот', 'лошадь', 'змея', 'рыба'] >>> if 'кот' in elements: print('meow') meow

Объединение списков

Списки в Python можно объединят с помощью оператора + или метода extend . Выглядит это так:

Копирование списка Python

Если вы захотите скопировать список оператором = , вы скопируете не сам список, а только его ссылку.

Для копирования списков можно использовать несколько вариантов:

  • elements.copy() — встроенный метод copy (доступен с Python 3.3);
  • list(elements) — через встроенную функцию list() ;
  • copy.copy(elements) — функция copy() из пакета copy;
  • elements[:] — через создание среза (устаревший синтаксис).

Рассмотрим на примере каждый из этих способов:

Важно : copy.copy(a) делает поверхностное копирование. Объекты внутри списка будут скопированы как ссылки на них (как в случае с оператором = ). Если необходимо рекурсивно копировать всех элементов в списке, используйте copy.deepcopy(a)

Цикл по списку

Для перебора списков в Python есть два цикла: for и while .

elements = [1, 2, 3, "meow"] for el in elements: print(el)

Попробуем построить цикл while . Он выполняется, когда есть какое-либо определённое условие:

elements = [1, 2, 3, "meow"] elements_len = len(elements) i = 0 while i

Из примеров выше можем сделать вывод, что конструкция for выглядит заметно компактнее, чем while .

Методы списков

  • list.append(x) — позволяет добавлять элемент в конец списка;
  • list1.extend(list2) — предназначен для сложения списков;
  • list.insert(i, x) — служит для добавления элемента на указанную позицию( i — позиция, x — элемент);
  • list.remove(x) — удаляет элемент из списка (только первое вхождение);
  • list.clear() — предназначен для удаления всех элементов (после этой операции список становится пустым []);
  • list.copy() — служит для копирования списков.
  • list.count(x) — посчитает количество элементов x в списке;
  • list.index(x) — вернет позицию первого найденного элемента x в списке;
  • list.pop(i) — удалит элемент из позиции i ;
  • list.reverse() — меняет порядок элементов в списке на противоположный;
  • list.sort() — сортирует список.

Пример использования методов:

Вложенные списки

Список может содержать объекты разных типов: числовые, буквенные, а также списки. Список списков выглядит следующим образом:

>>> elements = [1, 2, [0.1, 0.2, 0.3]]

Для обращения к элементу вложенного списка нужно использовать два индекса: первый указывает на индекс главного списка, второй — индекс элемента во вложенном списке. Вот пример:

>>> elements = [["яблоки", 50], ["апельсины", 190], ["груши", 100]] >>> print(elements[0]) ['яблоки', 50] >>> print(elements[1][0]) апельсины

Срезы

Срезы (slices) — это подмножества элементов списка. Срезу нужны, когда необходимо извлечь часть списка из полного списка.

У них есть свой собственный синтаксис. Записывается срез так же, как обращение к элементу, используя индекс. Пример:

В этом случае берётся срез от номера start (включительно) до stop (не включая его), а step — это шаг. По умолчанию start и stop равны 0, step равен 1.

Генераторы списков

Генератором списка называется способ построения списка с применением выражения к каждому элементу, входящему в последовательность. Есть схожесть генератора списка и цикла for . На этом примере мы рассмотрим простейший генератор списков:

>>> c = [c * 3 for c in 'list'] >>> print(c) ['lll', 'iii', 'sss', 'ttt']

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

Пример генератора списка:

>>> nums = [i for i in range(1, 15)] >>> print(nums) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

>>> c = [c + d for c in 'list' if c != 'i' for d in 'spam' if d != 'a'] >>> print(c) ['ls', 'lp', 'lm', 'ss', 'sp', 'sm', 'ts', 'tp', 'tm']

Это усложнённая конструкция генератора списков, в которой мы сделали все возможные наборы сочетаний букв из введённых слов. Буквы-исключения видны по циклу, где стоит знак != для одной переменной и другой.

Best Practices

Последние абзацы статьи будут посвящены лучшим решениям практических задач, с которыми так или иначе сталкивается Python-разработчик.

Как получить список в обратном порядке

Изменить порядок размещения элементов в списке помогает функция list.reverse() :

>>> elements = [1, 2, 3, 4, 5, 6] >>> elements.reverse() >>> print(elements) [6, 5, 4, 3, 2, 1]

Как перевести список в другой формат?

Иногда требуется перевести список в строку, в словарь или в JSON. Для этого нужно будет вывести список без скобок.

Перевод списка в строку осуществляется с помощью функции join(). На примере это выглядит так:

>>> fruits = ["яблоко", "груша", "ананас"] >>> print(', '.join(fruits)) яблоко, груша, ананас

В данном случае в качестве разделителя используется запятая.

Словарь в Python — это такая же встроенная структура данных, наряду со списком. Преобразование списка в словарь — задача тоже несложная. Для этого потребуется воспользоваться функцией dict() . Вот пример преобразования:

>>> elements = [['1', 'a'],['2', 'b'],['3', 'c']] >>> my_dict = dict(elements) >>> print(my_dict)

JSON — это JavaScript Object Notation. В Python находится встроенный модуль json для кодирования и декодирования данных JSON. С применением метода json.dumps(x) можно запросто преобразовать список в строку JSON.

>>> import json >>> json.dumps(['word', 'eye', 'ear']) '["word", "eye", "ear"]'

Как узнать индекс элемента в списке?

Узнать позицию элемента в последовательности списка бывает необходимым, когда элементов много, вручную их не сосчитать, и нужно обращение по индексу. Для того чтобы узнать индекс элемента, используют функцию list.index(x) .

>>> elements = [1, 3, 6, 9, 55] >>> print(elements.index(9)) 3

В качестве аргумента передаем значение, а на выходе получаем его индекс.

Как посчитать количество уникальных элементов в списке?

Самый простой способ — приведение списка к set (множеству). После этого останутся только уникальные элементы, которые мы посчитаем функцией len() :

>>> words = ["one", "two", "one", "three", "one"] >>> len(set(words)) 3

Как проверить список на пустоту?

Как создать список числовых элементов с шагом

Создание списка числовых элементов с шагом может понадобиться не так и часто, но мы рассмотрим пример построения такого списка.

Шагом называется переход от одного элемента к другому. Если шаг отрицательный, произойдёт реверс массива, то есть отсчёт пойдёт справа налево. Вот так выглядит список с шагом.

>>> elements = [1, 2, 3, 4, 5, 8, 9, 10, 11, 14, 20] >>> print(elements[0:11:2]) [1, 3, 5, 9, 11, 20]

Еще один вариант — воспользоваться генератором списков:

При разработке на языке Python, списки встречаются довольно часто. Знание основ работы со списками поможет быстро и качественно писать программный код 😉.

Я хочу создать пустой список (или любой другой способ), который может содержать 10 элементов.

После этого я хочу присвоить значения в этом списке, например, это должно отображать от 0 до 9:

Но когда я запускаю этот код, он генерирует ошибку или в другом случае просто отображает [] (пусто).

Может кто-нибудь объяснить, почему?

Чтобы создать список из , 0 чтобы 9 вы должны реально использовать for i in range(0, 10) , какие средства for (int i = 0, i .

Вы не можете присвоить списку подобное lst[i] = something , если список уже не инициализирован хотя бы с i+1 элементами. Вам нужно использовать append для добавления элементов в конец списка. lst.append(something) ,

(Вы можете использовать нотацию присваивания, если вы используете словарь).

Создание пустого списка:

Присвоение значения существующему элементу из приведенного выше списка:

Имейте в виду, что что-то подобное l[15] = 5 все равно не получится, так как в нашем списке всего 10 элементов.

range (x) создает список из [0, 1, 2, . x-1]

Использование функции для создания списка:

Понимание списка (используя квадраты, потому что для диапазона вам не нужно делать все это, вы можете просто вернуться range(0,9) ):

Попробуйте это вместо:

Выше будет создан список размером 10, где каждая позиция инициализируется None . После этого вы можете добавить к нему элементы:

По общему признанию, это не Pythonic способ сделать вещи. Лучше сделать это:

Или даже проще , в Python 2.x вы можете сделать это, чтобы инициализировать список со значениями от 0 до 9:

Другая замечательная вещь в этом заключается в том, что вы можете инициализировать список со значениями по умолчанию. lst = [''] * 10 или lst = [0] * 10

Вариант на примере понимания. Если все элементы в массиве необходимости быть пустыми при инициализации, используйте: arr = [None for _ in range(10)] .

в настоящее время принятый ответ Варунла

Хорошо работает для не ссылочных типов, таких как числа. К сожалению, если вы хотите создать список списков, вы столкнетесь с ошибками ссылок. Пример в Python 2.7.6:

Как видите, каждый элемент указывает на один и тот же объект списка. Чтобы обойти это, вы можете создать метод, который будет инициализировать каждую позицию для другой ссылки на объект.

Изменить: это [ [] for _ in range(10)]

Я слышал, что использование append очень часто уступает списку пониманий. Вы можете создать свой список списков через [ [] for _ in range(10)] .

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

Вы можете .append(element) в список, например: s1.append(i) . В настоящее время вы пытаетесь получить доступ к элементу ( s1[i] ), который не существует.

Похоже, что [None]*x быстрее:

Но если вы в порядке с диапазоном (например [0,1,2,3. x-1] ), тогда range(x) может быть быстрее:

Обратите внимание, что в Python3 вам придется использовать list(range(n)) вместо этого, так как range() не возвращает список, но является итератором, и это не быстрее, чем [None] * n .

Я удивлен, что никто не предлагает такой простой подход к созданию списка пустых списков. Это старая ветка, но для полноты добавлю это. Это создаст список из 10 пустых списков

Наиболее важное различие между выполнением вышеуказанного и выполнением x = [[]] * 10 состоит в том, что в последнем каждый элемент в списке указывает на один и тот же объект списка . Поэтому, если вам просто не нужно 10 копий одного и того же объекта, используйте range базовый вариант, поскольку он создает 10 новых объектов. Я нашел это различие очень важным.

(Это было написано на основе оригинальной версии вопроса.)

Я хочу создать пустой список (или как лучше) может содержать 10 элементов.

но когда я запускаю его, результат []

print display s1 неверный синтаксис; основываясь на вашем описании того, что вы видите, я полагаю, вы имели в виду display(s1) и тогда print s1 . Для этого вы должны предварительно определить глобал s1 для передачи в функцию.

Это даст вам что-то вроде:

Следующая проблема, которую вы заметите, состоит в том, что в вашем списке будет всего 9 элементов, потому что конечная точка пропускается range функцией. (Как следует из примечаний, [] работает точно так же list() , точка с запятой не нужна, s1 плохое имя для переменной, и для range начала вам нужен только один параметр 0 .) Итак, в итоге вы получите

Тем не менее, это все еще не хватает цели; range это не какое - то магическое ключевое слова , которое является частью языка так for и def есть, но вместо того, чтобы это функция. И угадайте, что возвращает эта функция? Это верно - список этих целых чисел. Таким образом, вся функция рушится

Читайте также: