Руководство Python Lists
1. Python List
В Python, List является самым гибким видом данных. Это последовательность (sequence) элементов (element), который позволяет удалять, добавлять элементы в список, одновременно позволяет делать слайс(Slice) элементов.
Чтобы написать список, вам нужно расположить элементы в квадратных скобках [ ] и отделить друг от друга запятой. Элементы в списке будут индексированы (index) слева направо начиная с индекса 0.
listExample.py
fruitList = ["apple", "apricot", "banana","coconut", "lemen"]
otherList = [100, "one", "two", 3]
print ("Fruit List:")
print (fruitList)
print (" --------------------------- ")
print ("Other List:")
print (otherList)
Output:
Fruit List:
['apple', 'apricot', 'banana', 'coconut', 'lemen']
---------------------------
Other List:
[100, 'one', 'two', 3]
2. Получить доступ к элементам списка
Доступ к элементам
Используйте цикл for, чтобы получить доступ к элементам списка:
accessElementExample.py
fruitList = ["apple", "apricot", "banana", "coconut", "lemen", "plum", "pear"]
for fruit in fruitList :
print ("Fruit: ", fruit)
Output:
Fruit: apple
Fruit: apricot
Fruit: banana
Fruit: coconut
Fruit: lemen
Fruit: plum
Fruit: pear
Получить доступ через индекс (index):
Вы так же можете получить доступ к элементам списка через индекс. Элементы списка индексированы слева направо, начиная с 0.
indexAccessExample.py
fruitList = ["apple", "apricot", "banana", "coconut", "lemen", "plum", "pear"]
print ( fruitList )
# Количество элементов.
print ("Element count: ", len(fruitList) )
for i in range (0, len(fruitList) ) :
print ("Element at ", i, "= ", fruitList[i] )
# Подсписок содержащий элементы с индексом от 1 до 4 (1, 2, 3)
subList = fruitList[1: 4]
# ['apricot', 'banana', 'coconut']
print ("Sub List [1:4] ", subList )
Output:
['apple', 'apricot', 'banana', 'coconut', 'lemen', 'plum', 'pear']
Element count: 7
Element at 0 = apple
Element at 1 = apricot
Element at 2 = banana
Element at 3 = coconut
Element at 4 = lemen
Element at 5 = plum
Element at 6 = pear
Sub List [1:4] ['apricot', 'banana', 'coconut']
Вы так же можете получить доступ к элементам списка по отрицательному индексу (Negative index), элементы индексированы справа налево со значениями -1, -2, ...
indexAccessExample2.py
fruitList = ["apple", "apricot", "banana", "coconut", "lemen", "plum", "pear"]
print ( fruitList )
print ("Element count: ", len(fruitList) )
print ("fruitList[-1]: ", fruitList[-1])
print ("fruitList[-2]: ", fruitList[-2])
subList1 = fruitList[-4: ]
print ("\n")
print ("Sub List fruitList[-4: ] ")
print (subList1)
subList2 = fruitList[-4:-2]
print ("\n")
print ("Sub List fruitList[-4:-2] ")
print (subList2)
Output:
['apple', 'apricot', 'banana', 'coconut', 'lemen', 'plum', 'pear']
Element count: 7
fruitList[-1]: pear
fruitList[-2]: plum
Sub List fruitList[-4: ]
['coconut', 'lemen', 'plum', 'pear']
Sub List fruitList[-4:-2]
['coconut', 'lemen']
3. Обновить список
Примером ниже является способ обновления списка (List) по индексу (index):
updateListExample.py
years = [1991,1995, 1992]
print ("Years: ", years)
print ("Set years[1] = 2000")
years[1] = 2000
print ("Years: ", years)
print ( years )
print ("Append element 2015, 2016 to list")
# Соединить (append) элемент в конце списка.
years.append( 2015 )
years.append( 2016 )
print ("Years: ", years)
Output:
Years: [1991, 1995, 1992]
Set years[1] = 2000
Years: [1991, 2000, 1992]
[1991, 2000, 1992]
Append element 2015, 2016 to list
Years: [1991, 2000, 1992, 2015, 2016]
Вы так же можете обновить значение для слайса (Slice) элементов. Это спсоб обновления многих элементов одновременно.
Слайс (Slice) это несколько последовательных элементов в списке.
sliceUpdateExample.py
years = [ 1990 , 1991 , 1992 , 1993 , 1994 , 1995 , 1996 ]
print ("Years: ", years)
print ("Update Slice: years[1:5] = [2000, 2001]")
years[1:5] = [ 2000 , 2001 ]
print ("Years: ", years)
Output:
Years: [1990, 1991, 1992, 1993, 1994, 1995, 1996]
Update Slice: years[1:5] = [2000, 2001]
Years: [1990, 2000, 2001, 1995, 1996]
4. Удалить элементы в списке
Чтобы удалить один или много элементов в списке (list) вы можете использовать команду del (del statement), или использовать метод remove(). В примере ниже используется команда del чтобы удалить один или много элементов по индексу.
deleteElementExample.py
years = [ 1990 , 1991 , 1992 , 1993 , 1994 , 1995 , 1996 ]
print ("Years: ", years)
print ("\n del years[6]")
# Удалить элемент с индексом = 6.
del years[6]
print ("Years: ", years)
print ("\n del years[1:4]")
# Удалить элемент с индексом = 1,2,3
del years[1:4]
print ("Years: ", years)
Output:
Years: [1990, 1991, 1992, 1993, 1994, 1995, 1996]
del years[6]
Years: [1990, 1991, 1992, 1993, 1994, 1995]
del years[1:4]
Years: [1990, 1994, 1995]
Метод remove(value) удаляет первый элемент в списке со значением равным значению параметра. Данный метод может выбросить исключение (throw exception) если не найдет никакого элемента для удаления.
removeElementExample.py
years = [ 1990 , 1991 , 1992 , 1993 , 1994 , 1993 , 1993 ]
print ("Years: ", years)
print ("\n years.remove(1993)")
# Удаляет первый элемент со значением 1993 в списке
years.remove(1993)
print ("Years: ", years)
Output:
Years: [1990, 1991, 1992, 1993, 1994, 1993, 1993]
years.remove(1993)
Years: [1990, 1991, 1992, 1994, 1993, 1993]
5. Обзор базовых операторов для списка
Как и String, List имеет 3 оператора +, * , in.
Оператор | Описание | Пример |
+ | Оператор используется для соединения (concatenate) 2 List, чтобы создать новый List. | [1, 2, 3[ + ["One","Two"]
--> [1, 2, 3, "One", "Two"] |
* | Оператор используется для соединения (concatenate) разных копий одного List. И создает новый List. | [1, 2] * 3
--> [1, 2, 1, 2, 1, 2] |
in | Проверяет находится ли элемент в List или нет, возвращает True или False. | "Abc" in ["One", "Abc"]
--> True |
listOperatorsExample.py
list1 = [1, 2, 3]
list2 = ["One", "Two"]
print ("list1: ", list1)
print ("list2: ", list2)
print ("\n")
list12 = list1 + list2
print ("list1 + list2: ", list12)
list2x3 = list2 * 3
print ("list2 * 3: ", list2x3)
hasThree = "Three" in list2
print ("'Three' in list2? ", hasThree)
Output:
list1: [1, 2, 3]
list2: ['One', 'Two']
list1 + list2: [1, 2, 3, 'One', 'Two']
list2 * 3: ['One', 'Two', 'One', 'Two', 'One', 'Two']
'Three' in list2? False
6. Функции для List
Функция | Описание |
cmp(list1, list2) | Сравнить элементы обоих списков. Данная функция была удалена из Python3. |
len(list) | Возвращает количество элементов списка |
max(list) | Возвращает элемент с наибольшим значением в списке. |
min(list) | Возвращает элемент с наименьшим значением в списке. |
list(seq) | Ковертирует tuple в список. |
listsFunctionExample.py
list1 = [1991, 1994, 1992]
list2 = [1991, 1994, 2000, 1992]
print ("list1: ", list1)
print ("list2: ", list2)
# Возвращает количество элементов списка
print ("len(list1): ", len(list1) )
print ("len(list2): ", len(list2) )
# Наибольшее значение в списке (list).
maxValue = max(list1)
print ("Max value of list1: ", maxValue)
# Наименьшее значение в списке (list).
minValue = min(list1)
print ("Min value of list1: ", minValue)
# Tuple
tuple3 = (2001, 2005, 2012)
print ("tuple3: ", tuple3)
# Ковертирует Tuple в List.
list3 = list (tuple3)
print ("list3: ", list3)
Output:
list1: [1991, 1994, 1992]
list2: [1991, 1994, 2000, 1992]
len(list1): 3
len(list2): 4
Max value of list1: 1994
Min value of list1: 1991
tuple3: (2001, 2005, 2012)
list3: [2001, 2005, 2012]
Если элементы списка (list) являются числовым видом, поиск наибольшего и наименьшего значения в списке является понятным. Но если список содержит элементы вида object, они будут сравнены основываясь на правиле по умолчанию Python, или вам нужно дать определенное правило.
Смотрите так же:
- Comparing and Sorting in Python
7. Методы
Метод | Описание |
list.append(obj) | Соединяет (append) объект в список. |
list.count(obj) | Возвращает количество появления 'obj' в списке |
list.extend(seq) | Соединяет содержание ряда (sequence) и списка |
list.index(obj) | Возвращает наименьший индекс в списке, в котором находится элемент со значением obj. |
list.insert(index, obj) | Вставляет элемент в список с индексом index. |
list.pop([index]) | Если есть параметр index, удаляет и возвращает элемент в позиции index. Если наоборот, удаляет и возвращает последний элемент в списке. |
list.remove(obj) | Удаляет первый объект со значением obj из списка. |
list.reverse() | Переворачивает элементы в списке |
list.sort(key=None, reverse=False) | Упорядочивает элементы по ключу (key) предоставленный параметрами. |
Пример:
listMethodsExample.py
years = [ 1990 , 1991 , 1992 , 1993 , 1993 , 1993 , 1994 ]
print ("Years: ", years)
print ("\n - Reverse the list")
# Переворачивает список.
years.reverse()
print ("Years (After reverse): ", years)
aTuple = (2001, 2002, 2003)
print ("\n - Extend: ", aTuple)
years.extend(aTuple)
print ("Years (After extends): ", years)
print ("\n - Append 3000")
years.append(3000)
print ("Years (After appends): ", years)
print ("\n - Remove 1993")
years.remove(1993)
print ("Years (After remove): ", years)
print ("\n - years.pop()")
# Удаляет последний элемент списка.
lastElement = years.pop()
print ("last element: ", lastElement)
print ("\n")
# Count
print ("years.count(1993): ",years.count(1993) )
Output:
Years: [1990, 1991, 1992, 1993, 1993, 1993,1994]
- Reverse the list
Years (After reverse): [1994, 1993, 1993, 1993, 1992, 1991, 1990]
- Extend: (2001, 2002, 2003)
Years (After extends): [1994, 1993, 1993, 1993, 1992, 1991, 1990, 2001, 2002, 2003]
- Append 3000
Years (After appends): [1994, 1993, 1993, 1993, 1992, 1991, 1990, 2001, 2002, 2003, 3000]
- Remove 1993
Years (After remove): [1994, 1993, 1993, 1992, 1991, 1990, 2001, 2002, 2003, 3000]
- years.pop(2001)
last element: 3000
years.count(1993): 2
Смотрите так же:
- Comparing and Sorting in Python
Pуководства Python
- Документация по поиску Python
- Ветвление операторы в Python
- Руководство Python Function
- Класс и объект в Python
- Наследование и полиморфизм в Python
- Руководство Python Dictionary
- Руководство Python Lists
- Руководство Python Tuples
- Руководство Python Date Time
- Подключиться к базе данных MySQL на Python с помощью PyMySQL
- Руководство по исключению Python
- Руководство Python String
- Введение в Python
- Установить Python в Windows
- Установите Python в Ubuntu
- Установите PyDev для Eclipse
- Соглашения и версии грамматики в Python
- Руководство Python для начинающих
- Петли в Python
Show More