Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Операции со списками в Python: создание, доступ, изменение и продвинутые техники

Операции со списками в Python

Списки Python — одна из самых универсальных структур данных, позволяющая эффективно хранить, организовывать и манипулировать последовательностями значений. Это руководство охватывает всё: от создания и доступа к элементам до продвинутых техник — срезов, генераторов списков и встроенных методов.

Видео: Списки и кортежи в Python

Списки позволяют работать с несколькими элементами одновременно. Например:

# список языков программирования
['Python', 'C++', 'JavaScript']

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

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

# список целых чисел
my_list = [1, 2, 3]

Примеры:

# пустой список
my_list = []
# смешанные типы
my_list = [1, "Hello", 3.4]

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

# вложенный список
my_list = ["mouse", [8, 4, 6], ["a"]]

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

Python предлагает несколько способов доступа к элементам.

Индексация

Используйте оператор []. Индексы начинаются с 0; доступ за пределами диапазона вызывает IndexError, нецелочисленные индексы — TypeError.

my_list = ['p', 'r', 'o', 'b', 'e']
print(my_list[0])  # p
print(my_list[2])  # o
print(my_list[4])  # e
n_list = ["Happy", [2, 0, 1, 5]]
print(n_list[0][1])  # a
print(n_list[1][3])  # 5
print(my_list[4.0])  # TypeError

Вывод

p
o
e
a
5
Traceback (most recent call last):
  File "<string>", line 21, in <module>
TypeError: list indices must be integers or slices, not float

Отрицательная индексация

Отрицательные индексы отсчитываются от конца: -1 — последний элемент, -2 — предпоследний и так далее.

my_list = ['p','r','o','b','e']
print(my_list[-1])  # e
print(my_list[-5])  # p

Вывод

e
p
Операции со списками в Python: создание, доступ, изменение и продвинутые техники

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

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

my_list = ['p','r','o','g','r','a','m','i','z']
print(my_list[2:5])  # ['o', 'g', 'r']
print(my_list[5:])   # ['a', 'm', 'i', 'z']
print(my_list[:])    # полный список

Вывод

['o', 'g', 'r']
['a', 'm', 'i', 'z']
['p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z']

Примечание: Срез возвращает новый список; оригинал остаётся неизменным.


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

Списки изменяемы. Можно заменять отдельные элементы или срезы.

odd = [2, 4, 6, 8]
odd[0] = 1
print(odd)
odd[1:4] = [3, 5, 7]
print(odd)

Вывод

[1, 4, 6, 8]
[1, 3, 5, 7]

Добавление элементов: append() (один) или extend() (несколько). Оператор + для конкатенации, * — для повторения.

odd = [1, 3, 5]
odd.append(7)
print(odd)
odd.extend([9, 11, 13])
print(odd)
print(odd + [9, 7, 5])
print(["re"] * 3)

Вывод

[1, 3, 5, 7]
[1, 3, 5, 7, 9, 11, 13]
[1, 3, 5, 9, 7, 5]
['re', 're', 're']

Вставка по индексу с insert() или присваиванием в пустой срез:

odd = [1, 9]
odd.insert(1, 3)
print(odd)
odd[2:2] = [5, 7]
print(odd)

Вывод

[1, 3, 9]
[1, 3, 5, 7, 9]

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

Используйте del для удаления по индексу или срезу, или всего списка. remove() удаляет первое вхождение значения, pop() удаляет и возвращает элемент по индексу (или последний, если индекс не задан). clear() очищает список.

my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']
# удалить один элемент
del my_list[2]
print(my_list)
# удалить несколько
del my_list[1:5]
print(my_list)
# удалить весь список
del my_list
print(my_list)  # NameError

Вывод

['p', 'r', 'b', 'l', 'e', 'm']
['p', 'm']
Traceback (most recent call last):
  File "<string>", line 18, in <module>
NameError: name 'my_list' is not defined

Альтернатива через присваивание срезу:

>>> my_list = ['p','r','o','b','l','e','m']
>>> my_list[2:3] = []
>>> my_list
['p', 'r', 'b', 'l', 'e', 'm']
>>> my_list[2:5] = []
>>> my_list
['p', 'r', 'm']

Основные методы списков

МетодОписание
append()Добавляет элемент в конец
extend()Добавляет все элементы из итерируемого объекта
insert()Вставляет элемент по указанному индексу
remove()Удаляет первое вхождение значения
pop()Удаляет и возвращает элемент по индексу (или последний)
clear()Очищает список
index()Возвращает индекс первого вхождения значения
count()Считает вхождения значения
sort()Сортирует список по возрастанию
reverse()Разворачивает список
copy()Возвращает поверхностную копию
my_list = [3, 8, 1, 6, 8, 8, 4]
my_list.append('a')
print(my_list)
print(my_list.index(8))  # 1
print(my_list.count(8))  # 3

Генераторы списков (List Comprehension)

Генераторы списков дают лаконичный способ создания списков.

pow2 = [2 ** x for x in range(10)]
print(pow2)

Вывод

[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]

Эквивалент циклом:

pow2 = []
for x in range(10):
    pow2.append(2 ** x)

Генераторы могут содержать несколько for или фильтр if.

>>> pow2 = [2 ** x for x in range(10) if x > 5]
>>> pow2
[64, 128, 256, 512]
>>> odd = [x for x in range(20) if x % 2 == 1]
>>> odd
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
>>> [x+y for x in ['Python ','C '] for y in ['Language','Programming']]
['Python Language', 'Python Programming', 'C Language', 'C Programming']

Подробнее в официальной документации.


Дополнительные операции со списками

Проверка принадлежности

Проверьте наличие значения с in или not in.

my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']
print('p' in my_list)   # True
print('a' in my_list)   # False
print('c' not in my_list)  # True

Вывод

True
False
True

Итерация по списку

Используйте цикл for для обработки каждого элемента.

for fruit in ['apple','banana','mango']:
    print("I like", fruit)

Вывод

I like apple
I like banana
I like mango

Python

  1. Освоение типов данных в Python: практическое руководство
  2. Мастерство операторов Python: Полное руководство
  3. Оператор pass в Python: практическое руководство
  4. Аргументы функций в Python: позиционные, именованные и параметры по умолчанию
  5. Освоение Python time.sleep(): лучшие практики, многопоточность и реальные примеры
  6. Мастерство работы со списками Python: append, sort, len и list comprehensions — практическое руководство
  7. Вычисление среднего значения в Python: практическое руководство
  8. Python list.count(): экспертное руководство с практическими примерами
  9. Как удалить дубликаты из списка Python: 8 проверенных способов
  10. Как удалять элементы из списка Python: remove(), pop(), clear() и del