Масиви (списки) в Python, як і в інших мовах програмування, - це певна кількість елементів одного типу, які мають загальне ім'я, і кожен елемент має свій індекс - порядковий номер.
L - список цілих чисел:
L = [25, 755, -40, 57, -41]
Однак, в мові Python відсутня така структура, як «масив». Для роботи з масивами використовуються списки. Списки є впорядкованими послідовностями, які складаються з різних об'єктів (значень, даних), що беруться у квадратні дужки [ ] і відокремлюються один від одного за допомогою коми.
list('текст') # ['т', 'е', 'к', 'с', 'т']
Списки в Python є впорядкованими змінними наборами об'єктів, пронумерованих від 0.
При цьому об'єкти можуть бути різними - від цілих чисел до рядків. Списки можуть також зберігати списки.
При створенні списку в пам'яті резервується порожня область. З одного боку, це нічим не відрізняється від створення іншого типу даних, але різниця в тому, що вміст list може змінюватися:
numbers = [1, 2]
numbers[1] = 3
# обновлённый список: [1, 3]
До заміни елемента послідовності
print(numbers[1])
виведе 2, а після заміни виведе 3.
Створення списку у Python
Це можна зробити декількома способами, наприклад, перерахуванням елементів списку в квадратних дужках:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
У цьому одиниця буде на позиції 0, тобто
print(numbers[0])
виведе 1.
Також можна використовувати обробку об'єкта, що ітерується, функцією list()
Нехай у нас буде певний рядок, тоді:
list('tproger')
# ['t', 'p', 'r', 'o', 'g', 'e', 'r']
Також існують генератори списків, які дозволяють застосувати заданий вираз кожного елементу послідовності. Допустимо, необхідно створити list, що складається з чисел від 1 до 5 включно:
numbers = [i for i in range(1,6)]
# [1, 2, 3, 4, 5]
Зрізи (slice) списку
Зрізи дозволяють отримати деяке підмножина значень. Наступний код поверне список з елементами, починаючи індексом 0 і не включаючи індекс 2 і вище:
numbers = [1, 5, 9, 6]
print(numbers[0:2])
# вывод [1, 5]
Далі виведемо все, крім елемента на позиції 3:
print(numbers[:3])
# вывод [1, 5, 9]
А тепер починаючи з індексу 1 і до кінця:
print(numbers[1:])
# вывод [5, 9, 6]
Операції над списками Python
x in l - true Якщо елемент x є в списку l;
x not in l - true Якщо елемент x відсутній в l;
l1 + l2 - Об'єднання двох списків;
l * n , n * l - Копіює список n разів;
len(l) - Кількість елементів у l;
min(l) - Найменший елемент;
max(l) - Найбільший елемент;
sum(l) - Сума чисел списку;
for i in list() - Перебирає елементи зліва направо.
Методи списків Python
Index
Повертає положення першого елемента, що збігся. Пошук збігу відбувається зліва направо. Приклад:
numbers = [1, 5, 9, 6, 1, 2, 1]
print(numbers.index(1))
# вывод 0: первая найденная единица на позиции 0
Count
Даний метод вважає, скільки разів зазначене значення з'являється у списку Python:
numbers = [1, 5, 9, 6, 1, 2, 1]
print(numbers.count(1))
# вывод 3, потому что единица встречается 3 раза
Append
Додає зазначене значення на кінець:
numbers = [1, 5, 9, 6]
numbers.append(3)
# обновлённый список: [1, 5, 9, 6, 3]
Sort
Сортує список у Пайтоні. За замовчуванням від меншого до більшого:
numbers = [1, 5, 9, 6]
numbers.sort()
# обновлённый список: [1, 5, 6, 9]
Також можна сортувати послідовність елементів від більшого до меншого:
numbers = [1, 5, 9, 6]
numbers.sort(reverse = true)
# обновлённый список: [9, 6, 5, 1]
Insert
Вставляє елемент перед зазначеним індексом:
numbers = [1, 5, 9, 6]
numbers.insert(3, [2, 3])
# обновлённый список: [1, 5, 9, [2, 3], 6]
Remove
Видаляє перше входження елемента в списку Python.
numbers = [1, 5, 9, 6, 1, 2, 1]
numbers.remove(1)
# обновлённый список: [5, 9, 6, 1, 2, 1]
Extend
Подібно до методу append(), додає елементи, але перевага методу extend() в тому, що він також дозволяє додавати списки:
numbers = [1, 5, 9, 6]
numbers.extend([2, 3])
# обновлённый список: [1, 5, 9, 6, 2, 3]
Pop
А цей метод видаляє елемент конкретно зазначеному індексі, а також виводить віддалений елемент. Якщо індекс не вказано, метод за замовчуванням видалить останній елемент:
numbers = [1, 5, 9, 6]
numbers.pop(1)
# получаем:
# 5
# [1, 9, 6]
Join
Перетворює список на рядок. Розділювач елементів пишуть у лапках перед методом, а сам список Пітона має складатися з рядків:
mylist = ['сайт', 'типичный', 'программист']
print(', '.join(mylist))
# вывод 'сайт, типичный, программист'