Python 3 — lists

Содержание:

Список печати списков Выровняйте столбцы

Проблема Как распечатать список списков, чтобы столбец были выровнены?

Пример : Скажите, вы собираетесь распечатать список списков.

, 
 , 
 ]

Как выровнять столбцы?

Alice   'Data Scientist',  121000], 
 Bob    'Java Dev',           99000], 
 Ann    'Python Dev',      111000]]

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

# Create the list of lists
lst = ,
       ,
       ]


# Find maximal length of all elements in list
n = max(len(x) for l in lst for x in l)

# Print the rows
for row in lst:
    print(''.join(x.ljust(n + 2) for x in row))

Выход – это желаемое:

Alice           Data Scientist  121000          
Bob             Java Dev        99000           
Ann             Python Dev      111000   

Объяснение:

  • Во-первых, вы определяете длину (в символах) наибольшей строки в списке списков с использованием оператора Отказ Код использует вложенный для цикла в выражении генератора для достижения этой цели.
  • Во-вторых, вы повторяете каждый список в списке списков (называется ).
  • В-третьих, вы создаете строковое представление с столбцами, выровненными на «прокладке» каждая строки элемента, так что оно занимает персонажи пространства. Пропущенные символы заполнены пустыми пробелами.

Вы можете увидеть код в действии в следующем визуализации памяти. Просто нажмите «Далее», чтобы увидеть, какие объекты создаются в памяти, если вы запустите код в Python:

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

Python 3.x не имеет встроенного метода для расчета среднего. Вместо этого просто разделите сумму значений списка через количество элементов списка, используя два встроенных функции сумма () а также Лен () . Вы рассчитываете среднее значение данного список в питоне в качестве Сумма (список)/len (список) . Возвращаемое значение имеет тип float.

Если вы продолжаете бороться с теми основными командами Python, и вы чувствуете застрявшие в своем прогрессе обучения, у меня есть что-то для вас: Python One-listers (Amazon Link).

В книге я дам вам тщательный обзор темы критических компьютерных наук, таких как машинное обучение, регулярное выражение, наука о данных, Numpy и Python Basics – все в одной линейке кода Python!

Получите книгу от Amazon!

Официальная книга Описание: Python One-Listers покажет читателям, как выполнить полезные задачи с одной строкой кода Python. Следуя краткому переподготовку Python, книга охватывает важные продвинутые темы, такие как нарезка, понимание списка, вещание, функции лямбда, алгоритмы, регулярные выражения, нейронные сети, логистические регрессии и др .. Каждая из 50 секций книг вводит проблему для решения, проходит читателя через навыки, необходимые для решения этой проблемы, затем предоставляет краткое однонаправленное решение Python с подробным объяснением.

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

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

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

Оригинал: “https://blog.finxter.com/python-list-average/”

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

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

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

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

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

Тогда мы при помощи следующего кода можем легко вычислить средневзвешенное значение:

for c in range(len(cost)):
   cost = (cost * cases / sum(cases))
cost = sum(cost)
print(cost)

Результат:

Но есть и другие способы это сделать. Например, следующий:

sum(cost * cases / sum(cases) for c in range(len(cost)))

Или вот такой вариант:

sum(cost * cases for c in range(len(cost))) / sum(cases)

И наконец, мы можем вычислить средневзвешенное значение с помощью функции .

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

# Вот что функция `zip()` делает со списками
print(list(zip(cost, cases)))
# Вычисляем средневзвешенное значение
print(sum() / sum(cases))

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

Как посчитать квантиль

Квантили, наряду с максимумами и минимумами, используются для составления сводного анализа данных. Также выделяют 25%, 50% и 75% квантили (процентили), их еще называют 1, 2 и 3 квартиль соответственно.

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

Минимум и максимум найти несложно, но что насчет квартилей?

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

  • 25% процентиль или, иначе говоря, первый квартиль, вычисляется посредством умножения  на . В результате получаем , при округлении в большую сторону . Это дает нам номер нашего наблюдения, который и будет искомым квартилем.
  • Тритий квартиль, он же 75% процентиль мы вычисляем, умножая  на . В результате получаем , что при округлении дает . Таким образом, мы получаем 19 элемент нашего списка, который и будет искомой величиной.
  • Медианное значение вычисляется при помощи умножения  на . После округления им будет 13 элемент нашего списка.

Но как это оформить в виде программы?

Самый простой способ — использовать NumPy. Вот пример вычисления медианного значения (он же 50% процентиль или второй квартиль):

# Импортируем библиотеку NumPy
import numpy as np
# Создаем массив
a = np.array()
# Вычисляем 50% процентиль нашего NumPy-массива
p = np.percentile(a, 50)
# Выводим результат
print(p)

Результат:

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

Допустим, у нас есть два списка:

И мы хотим получить в результате список, состоящий из сумм соответствующих элементов этих списков. Есть несколько способов это сделать.

При помощи базового Python

from operator import add
list(map(add, list1, list2))

В результате получаем следующий список: .

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

При помощи NumPy

Предыдущие примеры отлично работают с небольшими списками, но когда вы работаете с большими данными, лучше использовать NumPy.

Вам нужно будет импортировать библиотеку NumPy и конвертировать ваши списки в массивы NumPy.

# Импортируем библиотеку NumPy
import numpy as np
# Преобразуем списки в массивы NumPy 
vector1 = np.array()
vector2 = np.array()
# Поэлементно их суммируем
sum_vector = vector1 + vector2 
# Выводим результат
print(sum_vector)

СПИСОК PYTHON SUM TRESTE

Проблема : Как подвести список кортежей, элемент-мудрый?

Пример : Скажи, у тебя есть список И вы хотите подвести итоги первого и второго ценностей кортежей для получения «суммированного кортежа» Отказ

Решение : Распакуйте кортежи в функцию ZIP, чтобы объединить первое и второе ценности кортежных корпусов. Затем суммируйте эти ценности отдельно. Вот код:

# list of tuples
lst = 

# aggregate first and second tuple values
zipped = list(zip(*lst))
# result: 

# calculate sum of first and second tuple values
res = (sum(zipped), sum(zipped))

# print result to the shell
print(res)
# result: (3, 4)

Нужен переподготовка Функция и распаковка? Проверьте эти статьи на блог Finxter:

  • Zip refeher
  • Распаковывать ревью

Итерация по Списку в Python с Помощью цикла For

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

Пример

# Program to iterate through list using for loop 
list =  

# For Loop to iterate through list
for i in list: 
	print(i)

Объяснение

В приведенном выше примере программы мы сначала инициализировали и создали список с именем list. Список содержит шесть элементов, которые являются соответственно. А затем мы инициализировали простой цикл for в списке, который будет повторяться до конца списка и в конечном итоге печатать все элементы один за другим. Для печати в python мы просто используем функцию print (), как вы уже знаете.

Списки

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

Python

my_list = []
my_list = list()

1
2

my_list=

my_list=list()

Как вы видите, вы можете создать список при помощи квадратных скобок, или при помощи встроенного инструмента Python – list. Список состоит из таких элементов, как строки, цифры, объекты и смеси типов. Давайте взглянем на несколько примеров:

Python

my_list =
my_list2 =
my_list3 =

1
2
3

my_list=1,2,3

my_list2=»a»,»b»,»c»

my_list3=»a»,1,»Python»,5

Первый список содержит 3 числа, второй 3 строки, третий содержит смесь. Вы также можете создавать списки списков, вот так:

Python

my_nested_list =
print(my_nested_list) # , ]

1
2

my_nested_list=my_list,my_list2

print(my_nested_list)# , ]

В какой-то момент вам может понадобиться скомбинировать два списка вместе. Первый способ сделать это – при помощи метода extend:

Python

combo_list =
one_list =
a = combo_list.extend(one_list)

print(a) #

1
2
3
4
5

combo_list=1

one_list=4,5

a=combo_list.extend(one_list)

print(a)#

Немного проще будет просто добавить два списка вместе.

Python

my_list =
my_list2 =

combo_list = my_list + my_list2
print(combo_list) #

1
2
3
4
5

my_list=1,2,3

my_list2=»a»,»b»,»c»

combo_list=my_list+my_list2

print(combo_list)#

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

Python

alpha_list =
alpha_list.sort()

print(alpha_list) #

1
2
3
4

alpha_list=34,23,67,100,88,2

alpha_list.sort()

print(alpha_list)#

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

Python

alpha_list =
sorted_list = alpha_list.sort()

print(sorted_list) # None

1
2
3
4

alpha_list=34,23,67,100,88,2

sorted_list=alpha_list.sort()

print(sorted_list)# None

В этом примере мы попытались назначить сортированный список переменной. Однако, когда вы вызываете метод sort() в списке, он сортирует список на месте. Так что если вы попробуете назначить результат другой переменной, тогда возникнет объект None, который аналогичен объекту Null в других языках. Таким образом, когда вам нужно отсортировать что-нибудь, просто помните, что вы сортируете на месте, и вы не можете назначить объект другой переменной.Вы можете разрезать список также, как вы делаете это со строкой:

Python

a = alpha_list
print(a) #

1
2

a=alpha_list3

print(a)#

Данный код выдает список из трех первых элементов.

5. Как в Python работают представления списков?

Представление списков это, в сущности, просто элегантный способ конструирования списков в Python. Особенно этот способ понравится тем, кто любит математику. Судите сами:

Результат:

Итак, что же произошло? Мы взяли все целые числа от 0 до 10 (исключая 10) и каждое число возвели в квадрат.

Согласитесь, не очень сложно. Теперь давайте поднимем планку.

Давайте получим такой же список, но будем брать только четные числа, то есть те, которые нацело делятся на . Это также очень просто сделать при помощи представления списков.

Результат:

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

Итак, в более общем смысле, вы также можете использовать представление списков для преобразования ваших списков в другие списки, что звучит немного сложнее, не так ли?

Рассмотрим следующий пример:

Результат:

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

Теперь обратите внимание на выражение.  Для простоты, вы должны просто знать, что лямбда-функции — это анонимные функции, которые создаются во время выполнения

Учитывая это, вы можете просто сосредоточиться на выражении .

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

Для лучшего понимания вторую строку кода можно переписать следующим образом:

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

Стоит отметить, что помимо представления списков существуют также представления словарей и представления множеств.

7. Как производить математические вычисления при помощи списков Python

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

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

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

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

Тогда мы при помощи следующего кода можем легко вычислить средневзвешенное значение:

for c in range(len(cost)):
   cost = (cost * cases / sum(cases))
cost = sum(cost)
print(cost)

Результат:

Но есть и другие способы это сделать. Например, следующий:

sum(cost * cases / sum(cases) for c in range(len(cost)))

Или вот такой вариант:

sum(cost * cases for c in range(len(cost))) / sum(cases)

И наконец, мы можем вычислить средневзвешенное значение с помощью функции .

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

# Вот что функция `zip()` делает со списками
print(list(zip(cost, cases)))

# Вычисляем средневзвешенное значение
print(sum() / sum(cases))

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

Как посчитать квантиль

Квантили, наряду с максимумами и минимумами, используются для составления сводного анализа данных. Также выделяют 25%, 50% и 75% квантили (процентили), их еще называют 1, 2 и 3 квартиль соответственно.

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

Минимум и максимум найти несложно, но что насчет квартилей?

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

  • 25% процентиль или, иначе говоря, первый квартиль, вычисляется посредством умножения на . В результате получаем , при округлении в большую сторону . Это дает нам номер нашего наблюдения, который и будет искомым квартилем.
  • Тритий квартиль, он же 75% процентиль мы вычисляем, умножая на . В результате получаем , что при округлении дает . Таким образом, мы получаем 19 элемент нашего списка, который и будет искомой величиной.
  • Медианное значение вычисляется при помощи умножения на . После округления им будет 13 элемент нашего списка.

Но как это оформить в виде программы?

Самый простой способ — использовать NumPy. Вот пример вычисления медианного значения (он же 50% процентиль или второй квартиль):

# Импортируем библиотеку NumPy
import numpy as np

# Создаем массив
a = np.array()

# Вычисляем 50% процентиль нашего NumPy-массива
p = np.percentile(a, 50)

# Выводим результат
print(p)

Результат:

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

Допустим, у нас есть два списка:

И мы хотим получить в результате список, состоящий из сумм соответствующих элементов этих списков. Есть несколько способов это сделать.

При помощи базового Python

from operator import add
list(map(add, list1, list2))

В результате получаем следующий список: .

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

При помощи NumPy

Предыдущие примеры отлично работают с небольшими списками, но когда вы работаете с большими данными, лучше использовать NumPy.

Вам нужно будет импортировать библиотеку NumPy и конвертировать ваши списки в массивы NumPy.

# Импортируем библиотеку NumPy
import numpy as np

# Преобразуем списки в массивы NumPy 
vector1 = np.array()
vector2 = np.array()

# Поэлементно их суммируем
sum_vector = vector1 + vector2 

# Выводим результат
print(sum_vector)

Скачать

×

Строки

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

Операции со строками

string извлекает символ в позиции i
string извлекает последний символ
string извлекает символы в диапазоне от i до j

Методы работы сос строками

string.upper() преобразует строку в верхний регистр
String.lower() преобразует в строку в нижний регистр
string.count(x) подсчитывает, сколько раз появляется x
string.find(x) позиция первой строки вхождения x
string.replace(x, y) заменяет x на y
string.strip(x) удаляет как начальные, так и конечные символы x
string.join (List) объединяет список строк

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

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

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

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

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

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

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

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

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

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

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

Средний вложенный список Python

Проблема : Как рассчитать среднее вложенный список?

Пример : Учитывая вложенный список , ]. Вы хотите рассчитать среднее. Как ты это делаешь?

Решение Опять же, есть три идеи решения:

  • Распаковать Значения кортежных в списке и рассчитайте среднее значение этого списка.
  • Используйте только Понимание списка с вложенным для петли.
  • Используйте простые вложенные для петли.

Далее я дам все три примера в одном фрагменте кода:

lst = , ]


# 1. Unpacking
lst_2 = , *lst]
print(sum(lst_2) / len(lst_2))
# 3.5


# 2. List comprehension
lst_3 = 
print(sum(lst_3) / len(lst_3))
# 3.5


# 3. Nested for loop
lst_4 = []
for t in lst:
    for x in t:
        lst_4.append(x)
print(sum(lst_4) / len(lst_4))
# 3.5

Распаковывать : Оператор Звездочки перед тем, что оператор «распаковывает» все значения в соответствии с внутренним контекстом. Вы можете использовать его только в структуре контейнеров, способную поймать распаковываемые значения.

Понимание списка является компактным способом создания списков. Простая формула .

  • Выражение: Что делать с каждым элементом списка?
  • Контекст: в каком списке элементы выбрать? Он состоит из произвольного количества для и если утверждения.

Пример Создает список .

Список

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

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

numbers = [] 

Создание списка чисел:

numbers =  # имя списка numbers, он содержит 5 элементов

Создание списка слов:

words =  # имя списка words, он  содержит 4 элемента

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

listNum =  # имя списка listNum,    список     содержит целые числа и строки

Для управления элементами списки имеют целый ряд методов. Некоторые из них:

append(item): добавляет элемент item в конец списка
insert(index, item): добавляет элемент item в список по индексу index
remove(item): удаляет элемент item. Удаляется только первое вхождение элемента. Если элемент не найден, генерирует исключение ValueError
clear(): удаление всех элементов из списка
index(item): возвращает индекс элемента item. Если элемент не найден, генерирует исключение ValueError
pop(): удаляет и возвращает элемент по индексу index. Если индекс не передан, то просто удаляет последний элемент.
count(item): возвращает количество вхождений элемента item в список
sort(): сортирует элементы. По умолчанию сортирует по возрастанию. Но с помощью параметра key мы можем передать функцию сортировки.
reverse(): расставляет все элементы в списке в обратном порядке

Кроме того, Python предоставляет ряд встроенных функций для работы со списками:

len(list): возвращает длину списка
sorted(list, ): возвращает отсортированный список
min(list): возвращает наименьший элемент списка

Изменение списков с помощью операторов

Для изменения списков можно использовать операторы. Рассмотрим использование операторов + и * и их составные аналоги += и *=.

Оператор + используется для конкатенации двух и более списков:

С помощью оператора + можно добавлять объекты в список (объект нужно взять в квадратные скобки).

Оператор * позволяет умножать количество объектов в списке.

Например, попробуйте увеличить количество объектов в списке sea_creatures вдвое, а в oceans – втрое.

Также в списках можно применять составные операторы += и *=. С их помощью можно автоматически добавить в списки заполнители (к примеру, для пользовательского ввода).

Попробуйте добавить в список sea_creatures новый объект и создать цикл с помощью оператора +=.

Оператор *= работает аналогично:

Библиотека math

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

import math           # подключение модуля библиотеки

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

имя_модуля.имя_функции

Например, пусть мы хотим вызвать функцию вычисления Синус угла, задаваемого в радианахimport math y = sin(5)         # ошибка не подключен модуль mathx = math.sin(5)    # записываем имя модуля и через точку имя функции

Можно подключать не весь модуль, а какую-то его часть. Например, программист хочет использовать только одну функцию из математической библиотеки math. Если он подключит всю библиотеку, то будет добавлено более 40 функций, которые будут занимать место. Чтобы добавить в проект какую-то часть, используют ключевое слово from

from <имя подключаемого модуля> import <название функции>

Например.

from math import sin       # подключена только одна функция siny = sin(5)                 # операция выполненаx = cos(5)               # ошибка функция cos не подключена

Ниже приведен список основных функций модуля math. Некоторые из перечисленных функций (int, round, abs) являются стандартными и не требуют подключения модуля math для использования.

Как лучше выбирать элементы из списка?

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

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

# Выбираем первый элемент списка
oneZooAnimal = biggerZoo
# Выводим на экран переменную `oneZooAnimal`
print(oneZooAnimal)

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

Как получить последний элемент списка?

Ответ на этот вопрос является дополнением к объяснению в предыдущем разделе.

Попробуйте ввести отрицательное значение, например,  или , в оператор индекса, чтобы получить последние элементы нашего списка !

# Вставляем -1 
monkeys = biggerZoo
print(monkeys)
# А теперь -2
zebra = biggerZoo
print(zebra)

Не правда ли, не слишком сложно?

Что означает ошибка «Index Out Of Range»?

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

Лучший способ понять эту ошибку — попробовать ее получить самостоятельно.

Возьмите ваш список и передайте в оператор индекса либо очень маленькое отрицательное число, либо очень большое положительное число.

Как видите, вы можете получить ошибку «Индекс вне диапазона» в случаях, когда вы передаете в оператор индекса целочисленное значение, не попадающее в диапазон значений индекса списка. Это означает, что вы присваиваете значение или ссылаетесь на (пока) несуществующий индекс.

Срезы в списках

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

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

# Используем нотацию срезов
someZooAnimals = biggerZoo
# Выводим на экран то, что мы выбрали
print(someZooAnimals)
# Теперь поменяем местами 2 и двоеточие
otherZooAnimals = biggerZoo
# Выводим на экран полученный результат
print(otherZooAnimals)

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

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

В общем, подводя итоги:

# элементы берутся от start до end (но элемент под номером end не входит в диапазон!)
a
# элементы берутся начиная со start и до конца
a    
# элементы берутся с начала до end (но элемент под номером end не входит в диапазон!)
a

Совет: передавая в оператор индекса только двоеточие, мы создаем копию списка.

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

# Начиная со start, не доходя до end, с шагом step
a

Так что же по сути дает значение шага?

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

Обратите внимание, что если вы не указали какое-либо значение шага, оно будет просто установлено в значение . При проходе по списку ни один элемент пропущен не будет

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

Как случайным образом выбрать элемент из списка?

Для этого мы используем пакет .

# Импортируем функцию `choice` из библиотеки `random` 
from random import choice
# Создадим список из первых четырех букв алфавита
list = 
# Выведем на экран случайный элемент списка
print(choice(list))

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

# Импортируем функцию `randrange` из библиотеки `random`
from random import randrange
# Создадим список из первых четырех букв алфавита
randomLetters = 
# Выбираем случайный индекс нашего списка
randomIndex = randrange(0,len(randomLetters))
# Выводим случайный элемент на экран
print(randomLetters)

Совет: обратите внимание на библиотеку , она может вам пригодиться во многих случаях при программировании на Python

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector