betacode

Руководство Python Lists

View more Tutorials:

Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook

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, или вам нужно дать определенное правило.
Смотрите так же:
  • TODO Link?

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
Смотрите так же:
  • TODO Link?

View more Tutorials: