Как вывести значение из списка python


Скачай курс
в приложении
Перейти в приложение
Открыть мобильную версию сайта
© 2013 — 2023. Stepik
Наши условия использования и конфиденциальности

Public user contributions licensed under cc-wiki license with attribution required
Примеры работы со списками Python
Список Python — это последовательность значений любого типа: строки, числа, числа с плавающей точкой или даже смешанного типа. В этом материале речь пойдет о функциях списков, о том, как создавать их, добавлять элементы, представлять в обратном порядке и многих других.
Создать списки Python
Для создания списка Python нужно заключить элементы в квадратные скобки:
my_list = [1, 2, 3, 4, 5]
Список может выглядеть так:
my_list = ['один', 'два', 'три', 'четыре', 'пять']
Можно смешивать типы содержимого:
my_list = ['один', 10, 2.25, [5, 15], 'пять']
Поддерживаются вложенные списки как в примере выше.
Получать доступ к любому элементу списка можно через его индекс. В Python используется система индексации, начиная с нуля.
third_elem = my_list[2]
Принцип похож на строки.
Изменение списка
Списки — это изменяемые объекты, поэтому их элементы могут изменяться, или же может меняться их порядок.
Если есть такой список:
my_list = ['один', 'два', 'три', 'четыре', 'пять']
То его третий элемент можно изменить следующим образом:
my_list[2] = 'ноль'
Если сейчас вывести его на экран, то он будет выглядеть вот так:
['один', 'два', 'ноль', 'четыре', 'пять']
Если индекс — отрицательное число, то он будет считаться с последнего элемента.
my_list = ['один', 'два', 'три', 'четыре', 'пять'] elem = my_list[-1] print(elem)
Вывод этого кода — ‘пять’.
Проход (итерация) по списку
Читать элементы списка можно с помощью следующего цикла:
my_list = ['один', 'два', 'три', 'четыре', 'пять'] for elem in my_list: print(elem)
Таким образом можно читать элементы списка. А вот что касается их обновления:
my_list = [1, 2, 3, 4, 5] for i in range(len(my_list)): my_list[i]+=5 print(my_list)
Результат будет следующим:
[6, 7, 8, 9, 10]
Функция len() используется для возврата количества элементов, а range() — списка индексов.
Стоит запомнить, что вложенный список — это всегда один элемент вне зависимости от количества его элементов.
my_list = ['один', 10, 2.25, [5, 15], 'пять'] print(len(my_list))
Результат кода выше — 5 .
Срез списка
Можно получить срез списка с помощью оператора ( : ):
my_list = ['один', 'два', 'три', 'четыре', 'пять'] print(my_list[1:3])
Результат кода выше — [‘два’, ‘три’]
Если убрать первое число, от срез будет начинаться с первого элемента, а если второе — с последнего.
Если убрать числа и оставить только двоеточие, то скопируется весь список.
my_list = ['один', 'два', 'три', 'четыре', 'пять'] print(my_list[1:3]) print(my_list[1:]) print(my_list[:3]) print(my_list[:])
Результат этого года:
['два', 'три'] ['два', 'три', 'четыре', 'пять'] ['один', 'два', 'три'] ['один', 'два', 'три', 'четыре', 'пять']
Поскольку списки изменяемые, менять элементы можно с помощью оператора среза:
my_list = ['один', 'два', 'три', 'четыре', 'пять'] my_list[1:3] = ['Привет', 'Мир'] print(my_list)
['один', 'Привет', 'Мир', 'четыре', 'пять']
Вставить в список
Метод insert можно использовать, чтобы вставить элемент в список:
my_list = [1, 2, 3, 4, 5] my_list.insert(1,'Привет') print(my_list)
[1, 'Привет', 2, 3, 4, 5]
Индексы для вставляемых элементов также начинаются с нуля.
Добавить в список
Метод append можно использовать для добавления элемента в список:
my_list = ['один', 'два', 'три', 'четыре', 'пять'] my_list.append('ещё один') print(my_list)
['один', 'два', 'три', 'четыре', 'пять', 'ещё один']
Можно добавить и больше одного элемента таким способом:
my_list = ['один', 'два', 'три', 'четыре', 'пять'] list_2 = ['шесть', 'семь'] my_list.extend(list_2) print(my_list)
['один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь']
При этом list_2 не поменяется.
Отсортировать список
Для сортировки списка нужно использовать метод sort .
my_list = ['cde', 'fgh', 'abc', 'klm', 'opq'] list_2 = [3, 5, 2, 4, 1] my_list.sort() list_2.sort() print(my_list) print(list_2)
['abc', 'cde', 'fgh', 'klm', 'opq'] [1, 2, 3, 4, 5]
Перевернуть список
Можно развернуть порядок элементов в списке с помощью метода reverse :
my_list = [1, 2, 3, 4, 5] my_list.reverse() print(my_list)
[5, 4, 3, 2, 1]
Индекс элемента
Метод index можно использовать для получения индекса элемента:
my_list = ['один', 'два', 'три', 'четыре', 'пять'] print(my_list.index('два'))
Если в списке больше одного такого же элемента, функция вернет индекс первого.
Удалить элемент
Удалить элемент можно, написав его индекс в методе pop :
my_list = ['один', 'два', 'три', 'четыре', 'пять'] removed = my_list.pop(2) print(my_list) print(removed)
['один', 'два', 'четыре', 'пять'] три
Если не указывать индекс, то функция удалит последний элемент.
my_list = ['один', 'два', 'три', 'четыре', 'пять'] removed = my_list.pop() print(my_list) print(removed)
['один', 'два', 'три', 'четыре'] пять
Элемент можно удалить с помощью метода remove .
my_list = ['один', 'два', 'три', 'четыре', 'пять'] my_list.remove('два') print(my_list)
['один', 'три', 'четыре', 'пять']
Оператор del можно использовать для тех же целей:
my_list = ['один', 'два', 'три', 'четыре', 'пять'] del my_list[2] print(my_list)
['один', 'два', 'четыре', 'пять']
Можно удалить несколько элементов с помощью оператора среза:
my_list = ['один', 'два', 'три', 'четыре', 'пять'] del my_list[1:3] print(my_list)
['один', 'четыре', 'пять']
Функции агрегации
В Python есть некоторые агрегатные функции:
my_list = [5, 3, 2, 4, 1] print(len(my_list)) print(min(my_list)) print(max(my_list)) print(sum(my_list))
sum() работает только с числовыми значениями.
А max() , len() и другие можно использовать и со строками.
Сравнить списки
В Python 2 сравнить элементы двух списком можно с помощью функции cmp :
my_list = ['один', 'два', 'три', 'четыре', 'пять'] list_2 = ['три', 'один', 'пять', 'два', 'четыре'] print(cmp(my_list,list_2))
Она вернет -1 , если списки не совпадают, и 1 в противном случае.
В Python 3 для этого используется оператор ( == ):
my_list = ['один', 'два', 'три', 'четыре', 'пять'] list_2 = ['три', 'один', 'пять', 'два', 'четыре'] if (my_list == list_2): print('cовпадают') else: print('не совпадают')
Результат не совпадают .
Математические операции на списках:
Для объединения списков можно использовать оператор ( + ):
list_1 = [1, 2, 3] list_2 = [4, 5, 6] print(list_1 + list_2)
[1, 2, 3, 4, 5, 6]
Список можно повторить с помощью оператора умножения:
list_1 = [1, 2, 3] print(list_1 * 2)
[1, 2, 3, 1, 2, 3]
Списки и строки
Для конвертации строки в набор символов, можно использовать функцию list :
my_str = 'Monty Python' my_list = list(my_str) print(my_list)
['M', 'o', 'n', 't', 'y', ' ', 'P', 'y', 't', 'h', 'o', 'n']
Функция list используется для того, чтобы разбивать строку на отдельные символы.
Можно использовать метод split для разбития строки на слова:
my_str = 'Monty Python' my_list = my_str.split() print(my_list)
['Monty', 'Python']
Она возвращает обычный список, где с каждым словом можно взаимодействовать через индекс.
Символом разбития может служить любой знак, а не только пробел.
my_str = 'Monty-Python' my_list = my_str.split('-') print(my_list)
Результат будет аналогичен:
['Monty', 'Python']
Объединить список в строку
Обратный процесс — объединение элементов списка в строку.
Это делается с помощью метода join :
my_list = ['Monty', 'Python'] delimiter = ' ' output = delimiter.join(my_list) print(output)
Результат Monty Python .
Алиасинг (псевдонимы)
Когда две переменные ссылаются на один и тот же объект:
my_list = ['Monty', 'Python'] list_2 = my_list
Алиасинг значит, что на объект ссылается больше одного имени.
Следующий пример показывает, как меняются изменяемые списки:
my_list = ['Monty', 'Python'] list_2 = my_list list_2[1] = 'Java:)' print(my_list)
['Monty', 'Java:)']
Изменился список list_2 , но поскольку он ссылается на один и тот же объект, то оригинальный список тоже поменялся.
Использовать “псевдонимы” при работе со списками не рекомендуется.
В целом, работать со списками в Python очень просто.
Python. Как вытащить подходящие элементы из списка до определённого элемента?
[‘он’, ‘отпер’, ‘а’, ‘дверь’, ‘своим’, ‘а’, ‘ключом’, ‘и’, ‘вошел’, ‘а’, ‘следом’, ‘в’]
_0____1____2____3______4____5_____6____7____8____9____10____11
Десятый элемент ——————————————->>>>^
Если я вас правильно понял и вам надо напечатать элементы ( до десятого , а десятый элемент имеет индекс 9 , т.к. нумерация индексов начинается с НУЛЯ), значение, которых — а .
_list = ['он', 'отпер', 'а', 'дверь', 'своим', 'а', 'ключом', 'и', 'вошел', 'а', 'следом', 'в'] print(*[ i for i in _list[:9] if i == 'а' ], sep='\n')
Отслеживать
ответ дан 24 сен 2020 в 22:15
73.1k 107 107 золотых знаков 38 38 серебряных знаков 55 55 бронзовых знаков
@Apetry вы удалили свой предыдущий вопрос почему? Разобрались? Если нет, то восстановите его и я постараюсь вам помочь.
24 сен 2020 в 22:18
Да, с предыдущим вопросом всё стало ясно. Неточно выразилась: мне нужно не только напечатать элементы, но и посчитать их.
25 сен 2020 в 11:55
list = ['он', 'отпер', 'а', 'дверь', 'своим', 'а', 'ключом', 'и', 'вошел', 'а', 'следом', 'в'] for number, text in enumerate(list): if number == 9: break else: print(text)
Отслеживать
ответ дан 24 сен 2020 в 21:25
538 1 1 золотой знак 4 4 серебряных знака 12 12 бронзовых знаков
Ответ Данилкина выводит все элементы до указанного, правильнее так:
my_list = ['он', 'отпер', 'а', 'дверь', 'своим', 'а', 'ключом', 'и', 'вошел', 'а', 'следом', 'в'] result = ", ".join(str(x) for index, x in enumerate(my_list) if x == 'а' and index < 9) print(result)
Отслеживать
ответ дан 24 сен 2020 в 22:08
Serg Bocharov Serg Bocharov
1,694 1 1 золотой знак 6 6 серебряных знаков 11 11 бронзовых знаков
Мне бы хотелось точнее понимать значение в вопросе слова вытащить, но допустим это будет в значении вывести в консоль.
words = ['он', 'отпер', 'а', 'дверь', 'своим', 'а', 'ключом', 'и', 'вошел', 'а', 'следом', 'в']
Срез списка
list()[begin_index : end_index]. Рассматривайте end_index как условие остановки добавления элементов в срез. То есть все элементы начиная с end_index не будут добавлены в срез.
Выводим срез списка words с 0-го по 9-й элемент (индексы).
for item in words[ :10 ]: print(item)
print(*words[ :10 ], sep='\n')
Звездочкой мы указываем, что элементы среза мы передаем функции print как аргументы. В этом случае стандартно он разделяет их пробелом, но мы указываем разделителем символ перехода на новую строку.
Счетчик
Определяем внутри цикла, когда нам следует остановить вывод элементов.
enumerate каждым элементом возвращает кортеж (индекс элемента, элемент).
for item_index, item in enumerate(words): if item_index == 10: break print(item)
item_index = int() for item in words: if item_index == 10: break print(item) item_index += 1
Python. Урок 7. Работа со списками (list)
![]()
Одна из ключевых особенностей Python, благодаря которой он является таким популярным – это простота. Особенно подкупает простота работы с различными структурами данных – списками, кортежами, словарями и множествами. Сегодня мы рассмотрим работу со списками.
Что такое список (list) в Python?
Список (list) – это структура данных для хранения объектов различных типов. Если вы использовали другие языки программирования, то вам должно быть знакомо понятие массива. Так вот, список очень похож на массив, только, как было уже сказано выше, в нем можно хранить объекты различных типов. Размер списка не статичен, его можно изменять. Список по своей природе является изменяемым типом данных. Про типы данных можно подробно прочитать здесь . Переменная, определяемая как список, содержит ссылку на структуру в памяти, которая в свою очередь хранит ссылки на какие-либо другие объекты или структуры.
Как списки хранятся в памяти?
Как уже было сказано выше, список является изменяемым типом данных. При его создании в памяти резервируется область, которую можно условно назвать некоторым “контейнером”, в котором хранятся ссылки на другие элементы данных в памяти. В отличии от таких типов данных как число или строка, содержимое “контейнера” списка можно менять. Для того, чтобы лучше визуально представлять себе этот процесс взгляните на картинку ниже. Изначально был создан список содержащий ссылки на объекты 1 и 2, после операции a[1] = 3, вторая ссылка в списке стала указывать на объект 3.

Более подробно эти вопросы обсуждались в уроке 3 (Типы и модель данных).
Создание, изменение, удаление списков и работа с его элементами
Создать список можно одним из следующих способов.
>>> a = [] >>> type(a) >>> b = list() >>> type(b)
Также можно создать список с заранее заданным набором данных.
>>> a = [1, 2, 3] >>> type(a)
Если у вас уже есть список и вы хотите создать его копию, то можно воспользоваться следующим способом:
>>> a = [1, 3, 5, 7] >>> b = a[:] >>> print(a) [1, 3, 5, 7] >>> print(b) [1, 3, 5, 7]
или сделать это так:
>>> a = [1, 3, 5, 7] >>> b = list(a) >>> print(a) [1, 3, 5, 7] >>> print(b) [1, 3, 5, 7]
В случае, если вы выполните простое присвоение списков друг другу, то переменной b будет присвоена ссылка на тот же элемент данных в памяти, на который ссылается a, а не копия списка а. Т.е. если вы будете изменять список a, то и b тоже будет меняться.
>>> a = [1, 3, 5, 7] >>> b = a >>> print(a) [1, 3, 5, 7] >>> print(b) [1, 3, 5, 7] >>> a[1] = 10 >>> print(a) [1, 10, 5, 7] >>> print(b) [1, 10, 5, 7]
Добавление элемента в список осуществляется с помощью метода append().
>>> a = [] >>> a.append(3) >>> a.append("hello") >>> print(a) [3, 'hello']
Для удаления элемента из списка, в случае, если вы знаете его значение, используйте метод remove(x), при этом будет удалена первая ссылка на данный элемент.
>>> b = [2, 3, 5] >>> print(b) [2, 3, 5] >>> b.remove(3) >>> print(b) [2, 5]
Если необходимо удалить элемент по его индексу, воспользуйтесь командой del имя_списка[индекс].
>>> c = [3, 5, 1, 9, 6] >>> print(c) [3, 5, 1, 9, 6] >>> del c[2] >>> print(c) [3, 5, 9, 6]
Изменить значение элемента списка, зная его индекс, можно напрямую к нему обратившись.
>>> d = [2, 4, 9] >>> print(d) [2, 4, 9] >>> d[1] = 17 >>> print(d) [2, 17, 9]
Очистить список можно просто заново его проинициализировав, так как будто вы его вновь создаете. Для получения доступа к элементу списка укажите индекс этого элемента в квадратных скобках.
>>> a = [3, 5, 7, 10, 3, 2, 6, 0] >>> a[2] 7
Можно использовать отрицательные индексы, в таком случае счет будет идти с конца, например для доступа к последнему элементу списка можно использовать вот такую команду:
>>> a[-1] 0
Для получения из списка некоторого подсписка в определенном диапазоне индексов, укажите начальный и конечный индекс в квадратных скобках, разделив их двоеточием.
>>> a[1:4] [5, 7, 10]
Методы списков
list.append(x)
Добавляет элемент в конец списка. Ту же операцию можно сделать так a[len(a):] = [x].
>>> a = [1, 2] >>> a.append(3) >>> print(a) [1, 2, 3]
list.extend(L)
Расширяет существующий список за счет добавления всех элементов из списка L. Эквивалентно команде a[len(a):] = L.
>>> a = [1, 2] >>> b = [3, 4] >>> a.extend(b) >>> print(a) [1, 2, 3, 4]
list.insert(i, x)
Вставить элемент x в позицию i. Первый аргумент – индекс элемента после которого будет вставлен элемент x.
>>> a = [1, 2] >>> a.insert(0, 5) >>> print(a) [5, 1, 2] >>> a.insert(len(a), 9) >>> print(a) [5, 1, 2, 9]
list.remove(x)
Удаляет первое вхождение элемента x из списка.
>>> a = [1, 2, 3] >>> a.remove(1) >>> print(a) [2, 3]
Удаляет элемент из позиции i и возвращает его. Если использовать метод без аргумента, то будет удален последний элемент из списка.
>>> a = [1, 2, 3, 4, 5] >>> print(a.pop(2)) 3 >>> print(a.pop()) 5 >>> print(a) [1, 2, 4]
list.clear()
Удаляет все элементы из списка. Эквивалентно del a[:].
>>> a = [1, 2, 3, 4, 5] >>> print(a) [1, 2, 3, 4, 5] >>> a.clear() >>> print(a) []
list.index(x[, start[, end]])
Возвращает индекс элемента.
>>> a = [1, 2, 3, 4, 5] >>> a.index(4) 3
list.count(x)
Возвращает количество вхождений элемента x в список.
>>> a=[1, 2, 2, 3, 3] >>> print(a.count(2)) 2
list.sort(key=None, reverse=False)
Сортирует элементы в списке по возрастанию. Для сортировки в обратном порядке используйте флаг reverse=True. Дополнительные возможности открывает параметр key, за более подробной информацией обратитесь к документации.
>>> a = [1, 4, 2, 8, 1] >>> a.sort() >>> print(a) [1, 1, 2, 4, 8]
list.reverse()
Изменяет порядок расположения элементов в списке на обратный.
>>> a = [1, 3, 5, 7] >>> a.reverse() >>> print(a) [7, 5, 3, 1]
list.copy()
Возвращает копию списка. Эквивалентно a[:].
>>> a = [1, 7, 9] >>> b = a.copy() >>> print(a) [1, 7, 9] >>> print(b) [1, 7, 9] >>> b[0] = 8 >>> print(a) [1, 7, 9] >>> print(b) [8, 7, 9]
List Comprehensions
List Comprehensions чаще всего на русский язык переводят как абстракция списков или списковое включение, является частью синтаксиса языка, которая предоставляет простой способ построения списков. Проще всего работу list comprehensions показать на примере. Допустим вам необходимо создать список целых чисел от 0 до n, где n предварительно задается. Классический способ решения данной задачи выглядел бы так:
>>> n = int(input()) 7 >>> a=[] >>> for i in range(n): a.append(i) >>> print(a) [0, 1, 2, 3, 4, 5, 6]
Использование list comprehensions позволяет сделать это значительно проще:
>>> n = int(input()) 7 >>> a = [i for i in range(n)] >>> print(a) [0, 1, 2, 3, 4, 5, 6]
или вообще вот так, в случае если вам не нужно больше использовать n:
>>> a = [i for i in range(int(input()))] 7 >>> print(a) [0, 1, 2, 3, 4, 5, 6]
List Comprehensions как обработчик списков
В языке Python есть две очень мощные функции для работы с коллекциями: map и filter . Они позволяют использовать функциональный стиль программирования, не прибегая к помощи циклов, для работы с такими типами как list , tuple , set , dict и т.п. Списковое включение позволяет обойтись без этих функций. Приведем несколько примеров для того, чтобы понять о чем идет речь.
Пример с заменой функции map .
Пусть у нас есть список и нужно получить на базе него новый, который содержит элементы первого, возведенные в квадрат. Решим эту задачу с использованием циклов:
>>> a = [1, 2, 3, 4, 5, 6, 7] >>> b = [] >>> for i in a: b.append(i**2) >>> print('a = <>\nb = <>'.format(a, b)) a = [1, 2, 3, 4, 5, 6, 7] b = [1, 4, 9, 16, 25, 36, 49]
Та же задача, решенная с использованием map , будет выглядеть так:
>>> a = [1, 2, 3, 4, 5, 6, 7] >>> b = list(map(lambda x: x**2, a)) >>> print('a = <>\nb = <>'.format(a, b)) a = [1, 2, 3, 4, 5, 6, 7] b = [1, 4, 9, 16, 25, 36, 49]
В данном случае применена lambda -функция, о том, что это такое и как ее использовать можете прочитать здесь.
Через списковое включение эта задача будет решена так:
>>> a = [1, 2, 3, 4, 5, 6, 7] >>> b = [i**2 for i in a] >>> print('a = <>\nb = <>'.format(a, b)) a = [1, 2, 3, 4, 5, 6, 7] b = [1, 4, 9, 16, 25, 36, 49]
Пример с заменой функции filter .
Построим на базе существующего списка новый, состоящий только из четных чисел:
>>> a = [1, 2, 3, 4, 5, 6, 7] >>> b = [] >>> for i in a: if i%2 == 0: b.append(i) >>> print('a = <>\nb = <>'.format(a, b)) a = [1, 2, 3, 4, 5, 6, 7] b = [2, 4, 6]
Решим эту задачу с использованием filter :
>>> a = [1, 2, 3, 4, 5, 6, 7] >>> b = list(filter(lambda x: x % 2 == 0, a)) >>> print('a = <>\nb = <>'.format(a, b)) a = [1, 2, 3, 4, 5, 6, 7] b = [2, 4, 6]
Решение через списковое включение:
>>> a = [1, 2, 3, 4, 5, 6, 7] >>> b = [i for i in a if i % 2 == 0] >>> print('a = <>\nb = <>'.format(a, b)) a = [1, 2, 3, 4, 5, 6, 7] b = [2, 4, 6]
Слайсы / Срезы
Слайсы (срезы) являются очень мощной составляющей Python , которая позволяет быстро и лаконично решать задачи выборки элементов из списка. Выше уже был пример использования слайсов, здесь разберем более подробно работу с ними. Создадим список для экспериментов:
>>> a = [i for i in range(10)]
Слайс задается тройкой чисел, разделенных запятой: start:stop:step . Start – позиция с которой нужно начать выборку, stop – конечная позиция, step – шаг. При этом необходимо помнить, что выборка не включает элемент определяемый stop .
>>> # Получить копию списка >>> a[:] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> # Получить первые пять элементов списка >>> a[0:5] [0, 1, 2, 3, 4] >>> # Получить элементы с 3-го по 7-ой >>> a[2:7] [2, 3, 4, 5, 6] >>> # Взять из списка элементы с шагом 2 >>> a[::2] [0, 2, 4, 6, 8] >>> # Взять из списка элементы со 2-го по 8-ой с шагом 2 >>> a[1:8:2] [1, 3, 5, 7]
Слайсы можно сконструировать заранее, а потом уже использовать по мере необходимости. Это возможно сделать, в виду того, что слайс – это объект класса slice . Ниже приведен пример, демонстрирующий эту функциональность:
>>> s = slice(0, 5, 1) >>> a[s] [0, 1, 2, 3, 4] >>> s = slice(1, 8, 2) >>> a[s] [1, 3, 5, 7]
Типо “List Comprehensions”… в генераторном режиме
Есть ещё одни способ создания списков, который похож на списковое включение, но результатом работы является не объект класса list , а генератор. Подробно про генераторы написано в “ Уроке 15. Итераторы и генераторы“.
Предварительно импортируем модуль sys , он нам понадобится:
>>> import sys
Создадим список, используя списковое включение :
>>> a = [i for i in range(10)]
проверим тип переменной a:
>>> type(a)
и посмотрим сколько она занимает памяти в байтах:
>>> sys.getsizeof(a) 192
Для создания объекта-генератора, используется синтаксис такой же как и для спискового включения, только вместо квадратных скобок используются круглые:
>>> b = (i for i in range(10)) >>> type(b) >>> sys.getsizeof(b) 120
Обратите внимание, что тип этого объекта ‘generator’ , и в памяти он занимает места меньше, чем список, это объясняется тем, что в первом случае в памяти хранится весь набор чисел от 0 до 9, а во втором функция, которая будет нам генерировать числа от 0 до 9. Для наших примеров разница в размере не существенна, рассмотрим вариант с 10000 элементами:
>>> c = [i for i in range(10000)] >>> sys.getsizeof(c) 87624 >>> d = (i for i in range(10000)) >>> sys.getsizeof(d) 120
Сейчас уже разница существенна, как вы уже поняли, размер генератора в данном случае не будет зависеть от количества чисел, которые он должен создать.
Если вы решаете задачу обхода списка, то принципиальной разницы между списком и генератором не будет:
>>> for val in a: print(val, end=' ') 0 1 2 3 4 5 6 7 8 9 >>> for val in b: print(val, end=' ') 0 1 2 3 4 5 6 7 8 9
Но с генератором нельзя работать также как и со списком: нельзя обратиться к элементу по индексу и т.п.
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Раздел: Python Уроки по Python Метки: Python, Уроки Python
Python. Урок 7. Работа со списками (list) : 53 комментария
- навруз 17.12.2017 там ошибка
Изменить значение элемента списка, зная его индекс, можно напрямую к нему обратившись. >>> d = [2, 4, 9]
>>> print(d)
[2, 4, 9]
>>> d[1] = 17 индекс указан первый, следовательно должен измениться первый элемент.
>>> print(d)
[2, 17, 9] а тут изменен второй элемент. Вывод должен выглядеть так [17, 4, 9] Если я не
ошибаюсь)))
- writer 18.12.2017 В Python элементы списка нумеруются с нуля. Поэтому в списке [2, 4, 9], элемент с индексом 1 – это 4, и если мы сделаем присваивание d[1] = 17, то поменяем средний элемент в списке, так как это показано в примере!
Удачи!
- навруз 20.12.2017 ой спасибо за обьяснение)) изивиняюсь за ложные обвинения и невнимательность)))
- writer 20.12.2017 Пожалуйста! Спасибо вам за интерес к блогу)))
