Python создать list заданного размера

Как создать список Python размер N?

Создание списка N элементов заполнителей, умножьте список одного элемента заполнителей с N. Например, используйте [NOTE] * 5, чтобы создать список [Нет, нет, нет, нет, нет] с пятью элементами. Затем вы можете перезаписать некоторые элементы с индексами назначения. В примере приведет к … Как создать список Python размер N? Читать далее “

Создать список N Элементы заполнителя, умножьте список одного элемента заполнителя с N Отказ Например, используйте [Нет] * 5 Чтобы создать список [Нет, нет, нет, нет, нет] С пятью элементами Нет Отказ Затем вы можете перезаписать некоторые элементы с индексами назначения. В примере lst [2] приведет к измененному списку [Нет, нет, 42, нет, нет] Отказ

Давайте поиграем с интерактивным кодом, прежде чем погрузиться в подробное решение!

Упражнение : Инициализировать список с n = 20. Элементы заполнителя -1 и запустить код.

Далее вы узнаете о более формальной проблеме и погрузитесь в пошаговое решение.

Проблема : Учитывая целое число N Отказ Как инициализировать список с N Элементы заполнителя?

# n=0 --> [] # n=1 --> [None] # n=5 --> [None, None, None, None, None]

Решение : Используйте операцию конкатенации списка * Отказ

n = 5 lst = [None] * n print(lst) # [None, None, None, None, None]

Вы можете изменить элемент N как ты любишь. В последующих операциях вы можете перезаписать весь заполнитель Нет Список элементов с использованием простых операций назначения индекса:

lst[0] = 'Alice' lst[1] = 0 lst[2] = 42 lst[3] = 12 lst[4] = 'hello' print(lst) # ['Alice', 0, 42, 12, 'hello']

Тем не менее, есть небольшая проблема, если вы хотите создать список с помощью мусорных объектов (например, список списков):

lst = [[]] * n print(lst) # [[], [], [], [], []] lst[2].append(42) print(lst) # [[42], [42], [42], [42], [42]]

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

Решением является использование списка.

lst = [[] for _ in range(n)] print(lst) # [[], [], [], [], []] lst[2].append(42) print(lst) # [[], [], [42], [], []]

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

Упражнение : Запустите визуализацию и убедите себя, что только один элемент изменен! Почему это так?

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

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

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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

Читайте ещё по теме:

Источник

Как создать список с определенным размером на Python

Как создать список с определенным размером на Python

  1. Предварительное размещение хранилища для списков
  2. Предварительное выделение хранилища для других последовательных структур данных

Предварительное выделение хранилища для списков или массивов — типичный шаблон среди программистов.
когда они заранее знают количество элементов.

В отличие от C++ и Java, в Python, вы должны инициализировать все ваше предварительно распределенное хранилище некоторыми значениями.
Обычно разработчики используют для этого ложные значения, такие как None , «» , False и 0 .

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

Для сравнения характеристик различных подходов мы будем использовать стандарт Python
модуль timeit .
Он предоставляет удобный способ измерения времени выполнения небольших фрагментов кода Python.

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

Первый и самый быстрый способ использования оператора * , который повторяет список указанных
несколько раз.

>>> [None] * 10 [None, None, None, None, None, None, None, None, None, None] 

Миллион итераций (значение итераций по умолчанию в timeit ) занимает приблизительно
117 мс.

>>> timeit("[None] * 10") 0.11655918900214601 

Другой подход — использование встроенной функции range с пониманием списка.

>>> [None for _ in range(10)] [None, None, None, None, None, None, None, None, None, None] 

Она почти в шесть раз медленнее и занимает 612 мс в секунду на миллион итераций.

>>> timeit("[None for _ in range(10)]") 0.6115895550028654 

Третий подход — использование простого цикла for вместе с list.append() .

>>> a = [] >>> for _ in range(10): . a.append(None) . >>> a [None, None, None, None, None, None, None, None, None, None] 

Использование циклов является самым медленным методом и занимает 842 мс на миллион итераций.

>>> timeit("for _ in range(10): a.append(None)", setup="a=[]") 0.8420009529945673 

Предварительное выделение хранилища для других последовательных структур данных

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

>>> from array import array >>> array('i',(0,)*10) array('i', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) 

Как видно ниже, такой подход является вторым по скорости после [None] * 10 .

>>> timeit("array('i',(0,)*10)", setup="from array import array") 0.4557597979946877 

Сравним вышеприведенные подходы чистого Python с пакетом NumPy Python для научных вычислений.

>>> from numpy import empty >>> empty(10) array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) 

Путь NumPy занимает 589 мс на миллион итераций.

>>> timeit("empty(10)", setup="from numpy import empty") 0.5890094790011062 

Однако, для более массивных списков путь NumPy будет намного быстрее.

>>> timeit("[None]*10000") 16.059584009999526 >>> timeit("empty(10000)", setup="from numpy import empty") 1.1065983309963485 

Вывод в том, что для маленьких списков лучше придерживаться [None] * 10 , но переключайтесь
в NumPy’s empty() при работе с более массивными последовательными данными.

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

Сопутствующая статья — Python List

Источник

Создайте пустой список определенного размера в Python

В этом посте мы обсудим, как создать пустой список заданного размера в Python.

Чтобы присвоить любое значение списку, используя оператор присваивания в позиции i , a[i] = x , размер списка должен быть не менее i+1 . В противном случае он поднимет IndexError , как показано ниже:

Решение состоит в том, чтобы создать пустой список None когда элементы списка заранее неизвестны. Это можно легко сделать, как показано ниже:

Приведенный выше код создаст список размеров 5 , где каждая позиция инициализируется None . None часто используется в Python для обозначения отсутствия значения.

Другой альтернативой для создания пустых списков заданного размера является использование генераторов списков:

Какое решение использовать?

Первое решение хорошо работает для нессылочных типов, таких как числа. Но в некоторых случаях вы можете столкнуться с ошибками ссылок. Например, [[]] * 5 приведет к повторению списка, содержащего один и тот же объект списка 5 раз.

Решение этой проблемы заключается в использовании списков, подобных этому:

Это все о создании пустого списка заданного размера в Python.

Средний рейтинг 4.9 /5. Подсчет голосов: 20

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

Источник

Читайте также:  New big book css
Оцените статью