Python. Списки - List

11.2.3.1 создавать список;
11.2.2.1 выполнять доступ к элементам строк, списков и кортежей;
11.2.3.6 определять различия между различными структурами данных;

Python. Списки. Структура данных List.

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

Мы уже рассмотрели такие структуры данных, как множества и строки. Познакомимся еще с одной — список (list). Списки широко используются в программах.

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

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

Есть два варианта создания пустых списков:

# первый вариант 
lst = list()
print(lst) # будет выведен пустой список: []

# второй вариант
lst = []
print(lst) # будет выведен пустой список: []

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

animals = ["tiger", "fox", "wolf", "rabbit"]
print(animals) # будет выведено: ['tiger', 'fox', 'wolf', 'rabbit']
numbers = [35, 23, 19, 30]
print(numbers) # будет выведено: [35, 23, 19, 30]

Особенности списков:

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

Генерация списков

Помните что случится если строку умножить на число?
s = "!" * 5
print(s) # будет выведено: !!!!!

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

lst = [0] * 5
print(lst) # будет выведено: [0, 0, 0, 0, 0]
# другой пример
print(['x', 'y'] * 3) # будет выведено: ['x', 'y', 'x', 'y', 'x', 'y']

Индексирование списков

Элементы списка имеют свои индексы; поэтому в отличии от структуры данных set, в списках важен порядок элементов !!!

lst = ["tiger", "fox", "wolf", "rabbit"]
print(lst[2]) # будет выведено: wolf
print(lst[0]) # будет выведено: tiger
print(lst[7]) # будет выведено сообщение об ошибке IndexError: list index out of range
numbers = [2, 5, 8, 13, 21]
print(numbers[1] + numbers[3]) # будет выведено: 18

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

Метод append используется для добавления элементов в конец списков, поскольку все элементы индексируются.

lst = ["tiger", "fox", "wolf", "rabbit"]
lst.append("lion") # элемент добавляется в конец списка
print(lst) # будет выведено: ['tiger', 'fox', 'wolf', 'rabbit', 'lion']

Мы также можем расширить существующий список любым итерируемым (перечисляемым) объектом, используя метод extend.

lst = [1, 2, 3]
another_lst = [4, 5, 6]
lst.extend(another_lst)
print(lst) # получим: [1, 2, 3, 4, 5, 6]

If we expand the list with a string, then each character of the string becomes a separate element of the list.

lst = []
another_lst = "world"
lst.extend(another_lst)
print(lst) # will print: ['w', 'o', 'r', 'l', 'd']

Если мы расширим список строкой, то каждый символ строки станет отдельным элементом списка.

lst = [1, 2, 3]
another_set = {'w', 'o', 'r', 'l', 'd'}
lst.extend(another_set)
print(lst) # получим: [1, 2, 3, 'w', 'o', 'r', 'l', 'd']

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

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

lst = [1, 2, 5]
lst[1] = 7
print(lst) # получим: [1, 7, 5]

Многие операции, которые можно выполнять с другими структурами данных, применимы и к спискам.

lst = [1, 2, 3]
print(len(lst)) # вывод количества элементов списка
lst += [4, 5] # списки могут быть увеличены на другой спсиок
print(lst) # получим: [1, 2, 3, 4, 5]
if 1 in lst: # проверка на наличие элемента в списке 
    print('Находится в списке')
else:
    print('Нет в списке')

Вывод элементов списка

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

lst = ["tiger", "fox", "wolf", "rabbit"]
for i in range(len(lst)):                 # использование индексов элементов списка
    print('List item', i + 1, '-', lst[i])# получим: все элементы по очереди
for elem in lst:          # перебор элементов списка
    print(elem)          # получим: все элементы по очереди
-------------------------------------------------- ------
List item 1 - tiger
List item 2 - fox
List item 3 - wolf
List item 4 - rabbit
tiger
fox
wolf
rabbit

Заполнение элементов списка входными данными

n = int(input())                  # ввести количество элементов в списке
a = []                            # создание пустого списка
print('Enter', n, 'values:')
for i in range(n):          # определяет номер итерации (повторения)    
    a.append(input())       # добавляет введенное значение в список
print('The result is a list of strings:', a) # вывод списка

Срезы списков

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

months = ['January', 'February', 'March', 'April', 'May', 'June', 'July',
          'August', 'September', 'October', 'November', 'December']
spring = months[2:5] # spring == ['March', 'April', 'May']
for month in spring:
    print(month)

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

months = ['January', 'February', 'March', 'April', 'May', 'June', 'July',
          'August', 'September', 'October', 'November', 'December']
months[5:8] = ['JUNE', 'JULY', 'AUGUST']
print(months)
----------------------------------------
['January', 'February', 'March', 'April', 'May', 'JUNE', 'JULY', 'AUGUST', 'September', 'October', 'November', 'December']

Удаление элементов

Функция del используется для удаления элементов списка.

a = [1, 2, 3, 4, 5, 6]
del a[2]                 # удаление элемента с индексом 2
print(a)                 # получим: [1, 2, 4, 5, 6]

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

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

a = [1, 2, 3, 4, 5, 6]
del a[::2]
print(a) # получим: [2, 4, 6]

Отличие списков и массивов

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

Вопросы:

  1. Что такое "список"?
  2. Как создать список? Пустой список?
  3. Перчислите функции, которые применяются к спискам и объясните назначение каждой из них.

Упражнения:

Упр 1. Заполните пропуски

 

Задачи:

1. Напишите программу, в которой объявить список цветов со значениями red, green, blue, yellow, и вывести их в указанной последовательности.

2. Напишите программу на Python для суммирования всех элементов списка.

3. Напишите программу на Python, чтобы получить наибольшее и наименьшее числа из списка.

4. Напишите программу на Python для умножения всех элементов в списке не равных нулю.

5. Напишите программу на Python, чтобы проверить, является ли список пустым или нет.

6. Напишите программу Python для клонирования или копирования списка.

 

Категория: Programming languages | Добавил: bzfar77 (23.07.2022)
Просмотров: 1224 | Теги: Python, список, индекс | Рейтинг: 5.0/1
Всего комментариев: 0
avatar