Python Списък с разбиране, добавяне, сортиране, дължина [ПРИМЕРИ]

Какво е Python списък?

Списъкът е точно това, което звучи, контейнер, който съдържа различни Python обекти, които могат да бъдат цели числа, думи, стойности и т.н. Това е еквивалент на масив в други езици за програмиране. Той е представен с квадратни скоби (и това е един от атрибутите, който го отличава от кортежите, които са разделени със скоби). Освен това е променлив, т.е. може да бъде модифициран или актуализиран; за разлика от кортежите, които са неизменни.

Примери на Python списъци:

Python списъците могат да бъдат хомогенни, което означава, че могат да съдържат един и същи тип обекти; или разнородни, включително различни видове обекти.

Примерите за хомогенни списъци включват:

list of integers =  [1, 2, 3, 8, 33]
list of animals = ['dog', 'cat', 'goat']
list of names = ['John', 'Travis', 'Sheila']
list of floating numbers = [2.2, 4.5, 9.8, 10.4]

Примерите за разнородни списъци включват:

[2, 'cat', 34.33, 'Travis']
[2.22, 33, 'pen']

Достъп до стойности в списъци

За достъп до стойности в списъците може да се използва индексът на обектите в списъците. Индекс в Python lists се отнася до позицията на елемент в рамките на подреден списък. Например:

list = [3, 22, 30, 5.3, 20]
  • Първата стойност в списъка по-горе, 3, има индекс 0
  • Втората стойност, 22, има индекс 1
  • Третата стойност, 30, има индекс 2

и така нататък. За достъп до всяка от стойностите от списъка ще използвате:

list[0] to access 3
list[1] to access 22
list[2] to access 30
list[3] to access 5.3
list[4] to access 20

Последният член на списък също може да бъде достъпен чрез използване на индекс -1. например,

list[-1] = 20

Python Нарязване на списък

Разделянето на списък е методът за разделяне на подмножество от списък и индексите на обектите на списъка също се използват за това. Например, като използвате същия пример за списък по-горе;

list[:] = [3, 22, 30, 5.3, 20] (all the members of the list];
list[1:3] = [22, 30] (members of the list from index 1 to index 3, without the member at index 3);
list[:4] = [3, 22, 30, 5.3] (members of the list from index 0 to index 4, without the member at index 4)
list[2:-1] = [30, 5.3] (members of the list from index 2, which is the third element, to the second to the last element in the list, which is 5.3).

Python списъците са изключителни за горната граница и това означава, че последният индекс по време на нарязването на списък обикновено се игнорира. Ето защо

list[2:-1] = [30, 5.3]

, а не [30, 5.3, 20]. Същото важи и за всички други примери за нарязване на списъци, дадени по-горе.

Актуализиране на списъци

Да приемем, че имате списък = [physics, chemistry, mathematics] и искате да промените списъка на [biology, chemistry, mathematics], ефективно променяйки члена при индекс 0. Това може лесно да се направи, като присвоите този индекс на нов член, който искате.

Това е,

list = [physics, chemistry, mathematics]
    list[0] = biology
    print(list)

Резултат: [биология, химия, математика]

Това заменя члена с индекс 0 (физика) с новата стойност, която искате (химия). Това може да се направи за всеки член или подмножество от списъка, който искате да промените.

Да дам още един пример; да кажем, че имате списък, наречен цели числа и съдържащ числата [2, 5, 9, 20, 27]. За да замените 5 в този списък с 10, можете да направите това с:

integers = [2, 5, 9, 20, 27]
           integers[1] = 10
           print(integers)

>>> [2, 10, 9, 20, 27]

За да замените последния член на списъка с цели числа, който е 27, със свободно число като 30.5, ще използвате:

integers = [2, 5, 9, 20, 27]
           integers[-1] = 30.5
           print(integers)

>>> [2, 5, 9, 20, 30.5]

Изтриване на елементи от списъка

Има 3 Python методи за изтриване на елементи от списък: list.remove(), list.pop() и del оператор. Методът Remove взема конкретния елемент, който трябва да бъде премахнат, като аргумент, докато pop и del вземат индекса на елемента, който трябва да бъде премахнат, като аргумент. Например:

списък = [3, 5, 7, 8, 9, 20]

За да изтриете 3 (първият елемент) от списъка, можете да използвате:

  • list.remove(3) или
  • list.pop[0], или
  • дел списък[0]

За да изтриете 8, елемента с индекс 3, от списъка, можете да използвате:

  • list.remove(8), или
  • list.pop[3]

Добавяне на елементи от списък

За добавяне на елементи към списък се използва методът append и това добавя елемента в края на списъка.

Например:

list_1 = [3, 5, 7, 8, 9, 20]
    list_1.append(3.33)
    print(list_1)

    >>> list_1 = [3, 5, 7, 8, 9, 20, 3.33]

    list_1.append("cats")
    print(list_1)
    >>> list_1 = [3, 5, 7, 8, 9, 20, 3.33, "cats"]

Избройте вградените функции (методи)

Следва списък с вградени в списъка функции и методи с техните описания:

  • len (списък): това дава дължината на списъка като изход. Например:
numbers = [2, 5, 7, 9]
print(len(numbers))
>>> 4
  • макс (списък): връща елемента в списъка с максимална стойност. Например:
numbers = [2, 5, 7, 9]
print(max(numbers))
>>> 9
  • мин. (списък): връща елемента в списъка с минималната стойност. Например:
numbers = [2, 5, 7, 9]
print(min(numbers))
>>> 2
  • списък (кортеж): преобразува обект от кортеж в списък. Например;
animals = (cat, dog, fish, cow)
print(list(animals))
>>> [cat, dog, fish, cow]
numbers = [2, 5, 7, 9]
numbers.append(15)
print(numbers)
>>> [2, 5, 7, 9, 15]
  • списък.поп(индекс): премахва елемента с посочения индекс от списъка. Например;
numbers = [2, 5, 7, 9, 15]
numbers.pop(2)
print(numbers)
>>> [2, 5, 9, 15]
values = [2, 5, 7, 9]
values.remove(2)
print(values)
>>> [5, 7, 9]
  • списък.обратен(): обръща обектите в списъка. Например;
values = [2, 5, 7, 10]
values.reverse()
print(values)
>>> [10, 7, 5, 2]
  • списък.индекс(елемент): за получаване на стойността на индекса на елемент в списъка. Например;
animals = ['cat', 'dog', 'fish', 'cow', 'goat']
fish_index = animals.index('fish')
print(fish_index)
>>> 2
  • сума(списък): за получаване на сумата от всички стойности в списъка, ако всички стойности са числа (цели числа или десетични). Например;
values = [2, 5, 10]
sum_of_values = sum(values)
print(sum_of_values)

>>> 17

Ако списъкът съдържа елемент, който не е число, като например низ, методът на сумата няма да работи. Ще получите грешка, казваща: „Тип грешка: неподдържани типове операнд(и) за +: 'int' и 'str'”

  • list.sort(): за подреждане на списък от цели числа, числа с плаваща запетая или низове във възходящ или низходящ ред. Например:
values = [1, 7, 9, 3, 5]
# To sort the values in ascending order:
values.sort()
print(values)

>>> [1, 3, 5, 7, 9]

Друг пример:

values = [2, 10, 7, 14, 50]
# To sort the values in descending order:
values.sort(reverse = True)
print(values)

>>> [50, 14, 10, 7, 2]

Списък с низове може също да бъде сортиран по азбучен ред или по дължина на низовете. Например;

# to sort the list by length of the elements
strings = ['cat', 'mammal', 'goat', 'is']
sort_by_alphabet = strings.sort()
sort_by_length = strings.sort(key = len)
print(sort_by_alphabet)
print(sort_by_length)

>>> ['cat', 'goat', 'is', 'mammal']
        ['is', 'cat', 'goat', 'mammal']

Можем да сортираме същия списък по азбучен ред, като използваме „низове“.

Преминаване през списъци

Цикличното преминаване през списъци може да се извърши по същия начин, както всяка друга циклична функция в Python. По този начин един метод може да се изпълнява върху множество елементи от списък едновременно. Например:

списък = [10, 20, 30, 40, 50, 60, 70].

За да преминете през всички елементи от този списък и да кажем, добавете 10 към всеки елемент:

for elem in list:
        elem = elem + 5
        print(elem)
    
    >>>>15
        25
        35
        45
        55
        65
        75

За да преминете през първите три елемента от списъка и да ги изтриете всички;

for elem in list[:3]:
    list.remove(elem)

    >>>list = [40, 50, 60, 70]

За да преминете през 3rd (индекс 2) до последния елемент в списъка и ги добавете към нов списък, наречен new_list:

new_list = []	
    for elem in list[2:]:
        new_list.append(elem)
        print(“New List: {}”.format(new_list))
    
   Output:
	New List: [30, 40, 50, 60, 70]

По този начин всеки или метод или функция може да се приложи към членовете на списък за извършване на определена операция. Можете или да преминете през всички членове на списъка, или да преминете през подмножество от списъка, като използвате разделяне на списък.

Списъци с разбирания Python

Списъчните разбирания са Python функции, които се използват за създаване на нови поредици (като списъци, речници и т.н.), използвайки поредици, които вече са били създадени. Те помагат за намаляване на по-дългите цикли и правят вашия код по-лесен за четене и поддръжка.

Например; да приемем, че искате да създадете списък, който съдържа квадратите на всички числа от 1 до 9:

list_of squares = []
    for int in range(1, 10):
        square = int ** 2
        list_of_squares.append(square)

    print(list_of_squares)

List_of_squares using for loop:

    [1, 4, 9, 16, 25, 36, 49, 64, 81]

За да направите същото нещо с разбирането на списък:

list_of_squares_2 = [int**2 for int in range(1, 10)]

    print('List of squares using list comprehension: {}'.format(list_of_squares_2))

Output using list comprehension:

    [1, 4, 9, 16, 25, 36, 49, 64, 81]

Както се вижда по-горе, писането на кода с помощта на списъчни разбирания е много по-кратко от използването на традиционни цикли for и също така е по-бързо. Това е само един пример за използване на разбиране на списъци вместо for цикли, но това може да се репликира и използва на много места, където могат да се използват и for цикли. Понякога използването на for цикъл е по-добрият вариант, особено ако кодът е сложен, но в много случаи разбирането на списък ще направи кодирането ви по-лесно и по-бързо.

По-долу има таблица, съдържаща някои списъчни функции и методи и техните описания.

Вградени функции

ФУНКЦИЯ ОПИСАНИЕ
Кръгъл() Закръглява числото, предадено като аргумент, до определен брой цифри и връща стойността с плаваща запетая
Мин.() връща минимален елемент от даден списък
Макс() връща максимален елемент от даден списък
len () Връща дължината на списъка
Изброй() Тази вградена функция генерира както стойностите, така и индексите на елементите в итерируем, така че не е необходимо да броим ръчно
Филтър() тества дали всеки елемент от списък е верен или не
Lambda Израз, който може да се появи на места, където def (за създаване на функции) не е синтактичен, вътре в литерал на списък или аргументи за извикване на функция
Карта() връща списък с резултатите след прилагане на дадената функция към всеки елемент от даден итерируем
Натрупване() приложи определена функция, предадена в нейния аргумент към всички елементи на списъка, връща списък, съдържащ междинните резултати
Сума() Връща сумата от всички числа в списъка
Cmp() Това се използва за сравняване на два списъка и връща 1, ако първият списък е по-голям от втория списък.
Поставете Вмъкнете елемент в списъка на определена позиция

Списък с методи

ФУНКЦИЯ ОПИСАНИЕ
Добавяне() Добавя нов елемент в края на списъка
Изчисти() Премахва всички елементи от списъка
Копиране() Връща копие на оригиналния списък
Разшири() Добавете много елементи в края на списъка
Брой() Връща броя на срещанията на определен елемент в списък
индекс() Връща индекса на конкретен елемент от списък
поп () Изтрива елемент от списъка на определен индекс (изтриване по позиция)
Премахни() Изтрива определен елемент от списъка (изтриване по стойност)
Reverse() Метод за обръщане на място, който обръща реда на елементите в списъка

Oбобщение

  • Списъкът е точно това, което звучи, контейнер, който съдържа различни Python обекти, които могат да бъдат цели числа, думи, стойности и др.
  • Python списъците могат да бъдат хомогенни, което означава, че могат да съдържат един и същи тип обекти; или разнородни, съдържащи различни видове обекти.
  • За достъп до стойности в списъците може да се използва индексът на обектите в списъците.
  • Разделянето на списък е методът за разделяне на подмножество от списък и индексите на обектите на списъка също се използват за това.
  • Три метода за изтриване на елементи от списъка са: 1)list.remove(), 2)list.pop() и 3)del оператор
  • Методът Append се използва за добавяне на елементи. Това добавя елемента в края на списъка.
  • Метод на зацикляне на Python Програмата може да се изпълнява върху множество елементи от списък с данни едновременно.
  • Списъчните разбирания са Python функции, които се използват за създаване на нови поредици (като списъци, речници и т.н.), използвайки поредици, които вече са били създадени.