Списки
Вам часто придется работать с несколькими значениями в программе. Хранение каждого значения в отдельной переменной затрудняет чтение и написание кода. Чтобы сохранить несколько значений, можно использовать список Python. В этом модуле вы узнаете, как использовать списки и какие распространенные задачи можно с ними выполнять. Цели обучения
К концу этого модуля вы узнаете, когда следует использовать структуру списка и как она может помочь организовать данные, а также:
Понимать, когда использовать список.
Создавать список со строковыми значениями и числовыми значениями.
Получать доступ к определенному элементу в списке с помощью индексов.
Отправлять элементы в конец списка.
Выполнять сортировку и срез списка.
Представьте, что вы разрабатываете приложение для работы со списком планет. Вы хотите попросить пользователя указать название планеты, чтобы затем показать планеты, расположенные ближе и дальше от солнца.
Python имеет множество встроенных типов, таких как строки и целые числа. В Python есть тип для хранения коллекции значений — список.
Список создается путем присвоения переменной последовательности значений. Каждое значение отделяется запятой и заключено в квадратные скобки ([]). В следующем примере список всех планет хранится в переменной planets:
planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
Вы можете получить доступ к любому элементу в списке, поместив индекс в квадратные скобки [] после имени переменной списка. Индексы начинаются с 0, поэтому в следующем коде planets[0] является первым элементом в списке planets:
print("The first planet is", planets[0])
print("The second planet is", planets[1])
print("The third planet is", planets[2])
# Output
# The first planet is Mercury
# The second planet is Venus
# The third planet is Earth
Можно также изменять значения в списке с помощью индекса. Это можно сделать, назначив новое значение, точно так же, как вы присваиваете значение переменной. Например, можно изменить название “Марс” в списке, чтобы использовать его псевдоним:
planets[3] = "Red Planet"
print("Mars is also known as", planets[3])
# Output
# Mars is also known as Red Planet
Чтобы получить длину списка, используйте встроенную функцию len(). Следующий код создает новую переменную number_of_planets. Код присваивает этой переменной число элементов в списке planets (8).
number_of_planets = len(planets)
print("There are", number_of_planets, "planets in the solar system.")
# Output:
# There are 8 planets in the solar system
Списки в Python являются динамическими, то есть вы можете добавлять или удалять элементы после создания списка. Чтобы добавить элемент в список, используйте метод .append(value).
Например, следующий код добавляет строку “Pluto” в конец списка planets:
planets.append("Pluto")
number_of_planets = len(planets)
print("There are actually", number_of_planets, "planets in the solar system.")
# Output:
# There are actually 9 planets in the solar system.
Вы можете удалить последний элемент в списке, вызвав метод .pop() в переменной списка:
planets.pop() # Goodbye, Pluto
number_of_planets = len(planets)
print("No, there are definitely", number_of_planets, "planets in the solar system.")
Индексы начинаются с нуля и возрастают. Отрицательные индексы начинаются с конца списка и работают в обратном направлении.
В следующем примере индекс -1 возвращает последний элемент в списке. Индекс -2 возвращает второе значение с конца.
print("The last planet is", planets[-1])
print("The penultimate planet is", planets[-2])
# Output
# The last planet is Neptune
# The penultimate planet is Uranus
Чтобы определить, где хранится значение в списке, используйте метод списка index. Этот метод ищет значение и возвращает индекс этого элемента в списке. Если совпадений не найдено, возвращается значение -1.
В следующем примере показано использование “Jupiter” в качестве значения индекса:
jupiter_index = planets.index("Jupiter")
print("Jupiter is the", jupiter_index + 1, "planet from the sun")
# Output
# Jupiter is the 5 planet from the sun
- Добавить все планеты солнечной системы в список
- Отобразите количество планет
- Добавьте Плутон в список и выведите последний элемент списка
Часть списка можно извлечь с помощью среза. Срез использует квадратные скобки, но вместо одного элемента указывает начальный и конечный индексы. При использовании среза создается новый список, который начинается с начального индекса и заканчивается до конечного (не включая его).
Список планет содержит восемь элементов. Земля стоить третьей в списке. Чтобы выбрать планеты до Земли, используйте срез с 0 до 2:
planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
planets_before_earth = planets[0:2]
print(planets_before_earth)
# Output: ['Mercury', 'Venus']
Если не поместить в срез конечный индекс, Python предполагает, что вы хотите дойти до конца списка:
planets_after_earth = planets[3:]
print(planets_after_earth)
# Output
# ['Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']
Важно!
Срез создает новый список. Текущий список не изменяется.
Чтобы объединить два списка, используйте оператор (+) с двумя списками, чтобы получить новый список.
amalthea_group = ["Metis", "Adrastea", "Amalthea", "Thebe"]
galilean_moons = ["Io", "Europa", "Ganymede", "Callisto"]
regular_satellite_moons = amalthea_group + galilean_moons
print("The regular satellite moons of Jupiter are", regular_satellite_moons)
# Output
# The regular satellite moons of Jupiter are ['Metis', 'Adrastea', 'Amalthea', 'Thebe', 'Io', 'Europa', 'Ganymede', 'Callisto']
Важно!
При присоединении списков создается новый список. Текущий список не изменяется.
Чтобы отсортировать список, используйте метод .sort() в списке. Python сортирует список строк в алфавитном порядке, а список чисел — в числовом порядке:
regular_satellite_moons.sort()
print("The regular satellite moons of Jupiter are", regular_satellite_moons)
# Output
# The regular satellite moons of Jupiter are ['Adrastea', 'Amalthea', 'Callisto', 'Europa', 'Ganymede', 'Io', 'Metis', 'Thebe']
Чтобы отсортировать список в обратном порядке, вызовите .sort(reverse=True) в списке:
regular_satellite_moons.sort(reverse=True)
print("The regular satellite moons of Jupiter are", regular_satellite_moons)
# Output
# The regular satellite moons of Jupiter are ['Thebe', 'Metis', 'Io', 'Ganymede', 'Europa', 'Callisto', 'Amalthea', 'Adrastea']
Важно!
При использовании sort текущий список изменяется.