Python Înțelegerea listei: Adăugare, Sortare, Lungime

⚡ Rezumat inteligent

A Python „list” este un container mutabil care conține obiecte precum numere și șiruri de caractere între paranteze pătrate. Aici veți învăța să accesați, să segmentați, să actualizați, să ștergeți, să adăugați, să sortați și să parcurgeți liste, plus cum funcționează înțelegerea listelor.

  • 📋 Ce este: A Python o listă este un container mutabil, ordonat, scris între paranteze pătrate.
  • 🔢 Indexare: Accesați elementele după index și utilizați indici negativi pentru a număra de la sfârșit.
  • ✂️ Tăiere: Secționează o sublistă cu list[start:end], care este exclusivă la limita superioară.
  • 🛠️ Metode: append(), pop(), remove(), reverse(), sort() și multe altele care modifică listele.
  • Înțelegeri: Înțelegerea listelor construiește liste noi într-un singur rând scurt și rapid.
  • 🤖 Ajutor AI: Instrumentele de inteligență artificială precum Copilot generează instantaneu listă și cod de înțelegere.

Python Înțelegerea listei

Ce este a Python Listă?

O listă este exact ceea ce sună, un container care conține diferite Python obiecte, care ar putea fi numere întregi, cuvinte, valori etc. Este echivalentul unui tablou în alte limbaje de programare. Este reprezentat prin paranteze drepte (și acesta este unul dintre atributele care îl diferențiază de tupluri, care sunt separate prin paranteze). De asemenea, este mutabil, adică poate fi modificat sau actualizat; spre deosebire de tupluri, care sunt imuabile.

Exemple de Python liste:

Python listele pot fi omogene, adică pot conține același tip de obiecte; sau eterogene, incluzând diferite tipuri de obiecte.

Exemple de liste omogene includ:

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]

Exemple de liste eterogene includ:

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

Accesarea valorilor din liste

Pentru a accesa valorile din liste, se poate folosi indexul obiectelor din liste. Un index în Python liste se referă la poziția unui element într-o listă ordonată. De exemplu:

list = [3, 22, 30, 5.3, 20]
  • Prima valoare din lista de mai sus, 3, are un indice de 0
  • A doua valoare, 22, are un indice de 1
  • A treia valoare, 30, are un indice de 2

și așa mai departe. Pentru a accesa fiecare dintre valorile din listă, ați folosi:

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

Ultimul membru al unei liste poate fi accesat și folosind indexul -1. De exemplu,

list[-1] = 20

Python Tăierea listei

Tăierea listei este metoda de împărțire a unui subset al unei liste, iar indicii obiectelor din listă sunt, de asemenea, utilizați pentru aceasta. De exemplu, folosind același exemplu de listă de mai sus;

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 listele sunt exclusive la limita superioară, iar acest lucru înseamnă că ultimul index în timpul tăierii listei este de obicei ignorat. Acesta este motivul pentru care

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

, și nu [30, 5.3, 20]. Același lucru este valabil și pentru toate celelalte exemple de tăiere a listei prezentate mai sus.

Actualizarea listelor

Să presupunem că aveți o listă = [fizică, chimie, matematică] și doriți să schimbați lista în [biologie, chimie, matematică], schimbând efectiv membrul de la indicele 0. Acest lucru se poate face cu ușurință prin atribuirea acelui indice la membru nou dorit.

Acesta este,

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

Rezultate: [biologie, chimie, matematică]

Aceasta înlocuiește membrul de la indicele 0 (fizică) cu noua valoare dorită (chimie). Acest lucru se poate face pentru orice membru sau subset al listei pe care doriți să o modificați.

Pentru a da un alt exemplu; să presupunem că aveți o listă numită numere întregi și care conține numerele [2, 5, 9, 20, 27]. Pentru a înlocui 5 din acea listă cu 10, puteți face asta cu:

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

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

Pentru a înlocui ultimul membru al listei de numere întregi, care este 27, cu un număr liber ca 30.5, ați folosi:

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

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

Ștergerea elementelor listei

Există 3 Python metode de ștergere a elementelor listei: list.remove(), list.pop() și operatorul del. Metoda Remove preia elementul care trebuie eliminat ca argument, în timp ce pop și del iau indexul elementului care urmează să fie eliminat ca argument. De exemplu:

lista = [3, 5, 7, 8, 9, 20]

Pentru a șterge 3 (primul element) din listă, puteți folosi:

  • listă.elimină(3) sau
  • list.pop[0] sau
  • del list[0]

Pentru a șterge 8, elementul de la indexul 3, din listă, puteți folosi:

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

Adăugarea elementelor listei

Pentru a adăuga elemente la o listă, se folosește metoda anexă, iar aceasta adaugă elementul la sfârșitul listei.

De exemplu:

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"]

Listează funcțiile încorporate (metode)

Următoarea este o listă de funcții și metode încorporate, cu descrierile lor:

  • len(lista): aceasta oferă lungimea listei ca rezultat. De exemplu:
numbers = [2, 5, 7, 9]
print(len(numbers))
>>> 4
  • max(lista): returnează elementul din listă cu valoarea maximă. De exemplu:
numbers = [2, 5, 7, 9]
print(max(numbers))
>>> 9
  • min(lista): returnează elementul din listă cu valoarea minimă. De exemplu:
numbers = [2, 5, 7, 9]
print(min(numbers))
>>> 2
  • lista(tuplu): convertește un obiect tuplu într-o listă. De exemplu;
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]
  • listă.pop(index): elimină elementul de la indexul specificat din listă. De exemplu;
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]
  • lista.revers(): inversează obiectele listei. De exemplu;
values = [2, 5, 7, 10]
values.reverse()
print(values)
>>> [10, 7, 5, 2]
  • listă.index(element): pentru a obține valoarea indexului unui element din listă. De exemplu;
animals = ['cat', 'dog', 'fish', 'cow', 'goat']
fish_index = animals.index('fish')
print(fish_index)
>>> 2
  • sumă(listă): pentru a obține suma tuturor valorilor din listă, dacă valorile sunt toate numere (întregi sau zecimale). De exemplu;
values = [2, 5, 10]
sum_of_values = sum(values)
print(sum_of_values)

>>> 17

Dacă lista conține orice element care nu este un număr, cum ar fi un șir, metoda sumei nu ar funcționa. Veți primi o eroare care spune: „Eroare de scris: tip(uri) de operand neacceptat(e) pentru +: „int” și „str””

  • list.sort(): pentru a aranja o listă de numere întregi, numere cu virgulă mobilă sau șiruri, în ordine crescătoare sau descrescătoare. De exemplu:
values = [1, 7, 9, 3, 5]
# To sort the values in ascending order:
values.sort()
print(values)

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

Un alt exemplu:

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

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

O listă de șiruri poate fi, de asemenea, sortată, fie alfabetic, fie după lungimea șirurilor. De exemplu;

# 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']

Putem sorta aceeași listă alfabetic folosind „șiruri.

Looping prin liste

Looping prin liste se poate face exact în același mod ca în orice altă toaletăping funcția în Python. În acest fel, o metodă poate fi efectuată pe mai multe elemente ale unei liste în același timp. De exemplu:

lista = [10, 20, 30, 40, 50, 60, 70].

Pentru a parcurge toate elementele acestei liste și, să spunem, adăugați 10 la fiecare element:

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

Pentru a parcurge primele trei elemente ale listei și a le șterge pe toate;

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

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

Pentru a trece prin bucla 3rd (index 2) la ultimul element din listă și adăugați-le la o nouă listă numită 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]

În acest fel, orice metodă sau funcție poate fi aplicată membrilor unei liste pentru a efectua o anumită operație. Puteți fie să parcurgeți toți membrii listei, fie să faceți o buclă printr-un subset al listei utilizând lista de tăiere.

Lista de înțelegeri Python

Listele de înțelegere sunt Python funcții care sunt utilizate pentru crearea de secvențe noi (cum ar fi liste, dicționare etc.) folosind secvențe care au fost deja create. Ele ajută la reducerea buclelor mai lungi și fac codul mai ușor de citit și întreținut.

De exemplu; Să presupunem că doriți să creați o listă care conține pătratele tuturor numerelor de la 1 la 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]

Pentru a face același lucru cu listele de înțelegere:

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]

După cum sa văzut mai sus, scrierea codului folosind liste de înțelegere este mult mai scurtă decât utilizarea buclelor for tradiționale și este, de asemenea, mai rapidă. Acesta este doar un exemplu de utilizare a listelor de înțelegere în locul buclelor for, dar aceasta poate fi replicată și utilizată în multe locuri în care pot fi utilizate și buclele for. Uneori, a merge cu o buclă for este opțiunea mai bună, mai ales dacă codul este complex, dar în multe cazuri, înțelegerea listelor vă va face codarea mai ușoară și mai rapidă.

Mai jos este un tabel care conține câteva funcții și metode de listă și descrierile acestora.

Funcții încorporate

FUNCȚIA DESCRIERE
Rundă() Rotunjește numărul transmis ca argument la un anumit număr de cifre și returnează valoarea în virgulă mobilă
Min() returnează elementul minim al unei liste date
Max() returnează elementul maxim al unei liste date
len () Returnează lungimea listei
Enumera() Această funcție încorporată generează atât valorile, cât și indecșii elementelor într-un iterabil, deci nu trebuie să numărăm manual
Filtru() testează dacă fiecare element al unei liste este adevărat sau nu
Lambda O expresie care poate apărea în locuri în care un def (pentru crearea de funcții) nu este sintactic, în interiorul unui literal de listă sau al argumentelor de apel ale unei funcții
Hartă() returnează o listă a rezultatelor după aplicarea funcției date fiecărui element al unui iterabil dat
Acumula() Aplicarea unei anumite funcții transmise în argumentul său tuturor elementelor listei returnează o listă care conține rezultatele intermediare
Sumă() Returnează suma tuturor numerelor din listă
Cmp() Acesta este folosit pentru a compara două liste și returnează 1 dacă prima listă este mai mare decât a doua listă.
Insera Introduceți elementul pentru a lista într-o anumită poziție

Lista metode

FUNCȚIA DESCRIERE
Adăuga() Adaugă un nou articol la sfârșitul listei
Clar() Elimină toate elementele din listă
Copie() Returnează o copie a listei originale
Extinde() Adăugați multe articole la sfârșitul listei
Numara() Returnează numărul de apariții ale unui anumit element dintr-o listă
Index() Returnează indexul unui anumit element al unei liste
Pop() Șterge elementul din listă la un anumit index (șterge după poziție)
Elimina() Șterge elementul specificat din listă (șterge după valoare)
Reverse() Metoda de inversare in loc care inversează ordinea elementelor listei

Întrebări frecvente

O listă este un container mutabil, ordonat, scris între paranteze pătrate, care poate conține diferite obiecte, cum ar fi numere întregi, șiruri de caractere și numere cu virgulă. Este PythonVersiunea unui array.

Folosește list[start:end] pentru a obține o sublistă. Secționarea este exclusivă la limita superioară, deci indexul de sfârșit nu este inclus. Omiterea indexului de început sau sfârșit folosește limitele listei.

Folosește append() pentru a adăuga un element la sfârșit și extend() pentru a adăuga mai multe. Elimină elementele cu remove() după valoare sau pop() și del după index.

Apelați list.sort() pentru a sorta în ordine crescătoare. Transmiteți reverse=True pentru ordine descrescătoare sau key=len pentru a sorta șirurile după lungime.

O înțelegere a unei liste creează o listă nouă pe o singură linie, cum ar fi [x**2 for x in range(1, 10)]. Aceasta înlocuiește multe bucle for cu cod mai scurt, mai rapid și mai ușor de citit.

Asistenții inteligenți artificiali, precum GitHub Copilot, completează automat metodele de listă, convertesc buclele for în înțelegeri de liste și generează cod de sortare sau filtrare dintr-o descriere în limbaj simplu.

Da. Instrumentele bazate pe inteligență artificială pot automatiza transformarea buclelor în înțelegeri, pot sugera metoda corectă de listare și pot semnala operațiunile ineficiente, astfel încât codul listei să ruleze mai rapid.

O listă este modificabilă și folosește paranteze pătrate, deci puteți schimba elementele acesteia. Un tuplu este imuabil și folosește paranteze, deci conținutul său nu poate fi modificat după creare.

Rezumați această postare cu: