Масиви (списки) в 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.
Це можна зробити декількома способами, наприклад, перерахуванням елементів списку в квадратних дужках:
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]
Зрізи дозволяють отримати деяке підмножина значень. Наступний код поверне список з елементами, починаючи індексом 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]
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() - Перебирає елементи зліва направо.
Повертає положення першого елемента, що збігся. Пошук збігу відбувається зліва направо. Приклад:
numbers = [1, 5, 9, 6, 1, 2, 1]
print(numbers.index(1))
# вывод 0: первая найденная единица на позиции 0
Даний метод вважає, скільки разів зазначене значення з'являється у списку Python:
numbers = [1, 5, 9, 6, 1, 2, 1]
print(numbers.count(1))
# вывод 3, потому что единица встречается 3 раза
Додає зазначене значення на кінець:
numbers = [1, 5, 9, 6]
numbers.append(3)
# обновлённый список: [1, 5, 9, 6, 3]
Сортує список у Пайтоні. За замовчуванням від меншого до більшого:
numbers = [1, 5, 9, 6]
numbers.sort()
# обновлённый список: [1, 5, 6, 9]
Також можна сортувати послідовність елементів від більшого до меншого:
numbers = [1, 5, 9, 6]
numbers.sort(reverse = true)
# обновлённый список: [9, 6, 5, 1]
Вставляє елемент перед зазначеним індексом:
numbers = [1, 5, 9, 6]
numbers.insert(3, [2, 3])
# обновлённый список: [1, 5, 9, [2, 3], 6]
Видаляє перше входження елемента в списку Python.
numbers = [1, 5, 9, 6, 1, 2, 1]
numbers.remove(1)
# обновлённый список: [5, 9, 6, 1, 2, 1]
Подібно до методу append(), додає елементи, але перевага методу extend() в тому, що він також дозволяє додавати списки:
numbers = [1, 5, 9, 6]
numbers.extend([2, 3])
# обновлённый список: [1, 5, 9, 6, 2, 3]
А цей метод видаляє елемент конкретно зазначеному індексі, а також виводить віддалений елемент. Якщо індекс не вказано, метод за замовчуванням видалить останній елемент:
numbers = [1, 5, 9, 6]
numbers.pop(1)
# получаем:
# 5
# [1, 9, 6]
Перетворює список на рядок. Розділювач елементів пишуть у лапках перед методом, а сам список Пітона має складатися з рядків:
mylist = ['сайт', 'типичный', 'программист']
print(', '.join(mylist))
# вывод 'сайт, типичный, программист'
1. Імпорт бібліотеки turtle:
import turtle
Цей рядок імпортує бібліотеку turtle, яка дозволяє створювати графіку за допомогою "черепашки", що рухається по екрану.
2. Створення об'єкта turtle:
t = turtle.Turtle()
Тут створюється об'єкт t, який представляє собою черепашку. Саме через цей об'єкт ми будемо керувати малюванням.
3. Встановлення швидкості черепашки:
t.speed(10)
Цей рядок встановлює швидкість руху черепашки. Значення 10 - це максимальна швидкість. Можна використовувати числа від 1 до 10, де 1 - найповільніша, а 10 - найшвидша.
4. Створення списку кольорів:
colors = ['red', 'blue', 'green', 'yellow', 'purple']
Тут створюється список colors, який містить назви кольорів у вигляді рядків. Цей список буде використовуватися для зміни кольору черепашки під час малювання.
5. Цикл for:
for i in range(50):
Цей цикл повторює блок коду 50 разів. Змінна i приймає значення від 0 до 49.
6. Встановлення кольору черепашки:
t.pencolor(colors[i % 5])
i % 5: Це операція "модуль", яка повертає залишок від ділення i на 5. Це дозволяє циклічно вибирати кольори зі списку colors. Наприклад, коли i дорівнює 0, 5, 10 і т.д., i % 5 буде 0, і черепашка буде червоною. Коли i дорівнює 1, 6, 11 і т.д., i % 5 буде 1, і черепашка буде синьою, і так далі.
colors[i % 5]: Це вибирає колір зі списку colors за індексом, отриманим за допомогою i % 5.
t.pencolor(...): Цей метод встановлює колір лінії, яку малює черепашка.
7. Рух черепашки вперед і назад:
t.forward(100)
t.backward(100)
t.forward(100): Черепашка рухається вперед на 100 пікселів.
t.backward(100): Черепашка рухається назад на 100 пікселів.
8. Поворот черепашки:
t.left(10)
Черепашка повертається на 10 градусів вліво.
Загальний результат:
Програма малює 50 ліній, кожна з яких має довжину 100 пікселів. Кожна лінія має випадковий колір зі списку colors. Після кожної лінії черепашка повертається на 10 градусів, що призводить до створення спірального малюнка.
Отже, цей код використовує список кольорів, цикл і бібліотеку turtle для створення цікавого графічного малюнка.