Python Porozumění seznamu, připojit, seřadit, délka [PŘÍKLADY]

Co je to Python Seznam?

Seznam je přesně to, co zní, kontejner, který obsahuje různé Python objekty, což mohou být celá čísla, slova, hodnoty atd. Je to ekvivalent pole v jiných programovacích jazycích. Je reprezentován hranatými závorkami (a to je jeden z atributů, který jej odlišuje od n-tic, které jsou odděleny závorkami). Je také proměnlivý, to znamená, že jej lze upravovat nebo aktualizovat; na rozdíl od n-tic, které jsou neměnné.

Příklady Python seznamy:

Python seznamy mohou být homogenní, což znamená, že mohou obsahovat stejný typ objektů; nebo heterogenní, včetně různých typů objektů.

Příklady homogenních seznamů zahrnují:

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]

Příklady heterogenních seznamů zahrnují:

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

Přístup k hodnotám v seznamech

Pro přístup k hodnotám v seznamech lze použít index objektů uvnitř seznamů. Index v Python seznamy odkazuje na pozici prvku v uspořádaném seznamu. Například:

list = [3, 22, 30, 5.3, 20]
  • První hodnota ve výše uvedeném seznamu, 3, má index 0
  • Druhá hodnota, 22, má index 1
  • Třetí hodnota, 30, má index 2

a tak dále. Pro přístup ke každé z hodnot ze seznamu byste použili:

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

K poslednímu členu seznamu lze také přistupovat pomocí indexu -1. Například,

list[-1] = 20

Python Krájení seznamu

List slicing je metoda rozdělení podmnožiny seznamu ak tomu slouží také indexy objektů seznamu. Například pomocí stejného příkladu seznamu výše;

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 seznamy jsou výlučné na horní hranici, což znamená, že poslední index během dělení seznamu je obvykle ignorován. To je důvod

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

a ne [30, 5.3, 20]. Totéž platí pro všechny ostatní příklady dělení seznamu uvedené výše.

Aktualizace seznamů

Řekněme, že máte seznam = [fyzika, chemie, matematika] a chcete seznam změnit na [biologie, chemie, matematika], čímž efektivně změníte člen na indexu 0. To lze snadno provést přiřazením tohoto indexu k nového člena, kterého chcete.

To znamená,

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

Výstup: [biologie, chemie, matematika]

Tím se člen na indexu 0 (fyzika) nahradí novou požadovanou hodnotou (chemie). To lze provést pro libovolného člena nebo podmnožinu seznamu, který chcete změnit.

Abych uvedl další příklad; řekněme, že máte seznam nazvaný celá čísla a obsahující čísla [2, 5, 9, 20, 27]. Chcete-li nahradit 5 v tomto seznamu 10, můžete to udělat pomocí:

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

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

Chcete-li nahradit posledního člena seznamu celých čísel, což je 27, volným číslem, jako je 30.5, použijte:

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

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

Odstranění prvků seznamu

Existují 3 Python metody pro mazání prvků seznamu: list.remove(), list.pop() a operátor del. Metoda Remove bere jako argument konkrétní prvek, který má být odstraněn, zatímco pop a del berou index prvku, který má být odstraněn, jako argument. Například:

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

Chcete-li odstranit 3 (první prvek) ze seznamu, můžete použít:

  • list.remove(3) nebo
  • seznam.pop[0], popř
  • del seznam[0]

Chcete-li odstranit 8, položku na indexu 3, ze seznamu, můžete použít:

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

Připojování prvků seznamu

K připojení prvků k seznamu se používá metoda append, která přidá prvek na konec seznamu.

Například:

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

Seznam vestavěných funkcí (metod)

Následuje seznam vestavěných funkcí a metod s jejich popisem:

  • len(seznam): to udává délku seznamu jako výstup. Například:
numbers = [2, 5, 7, 9]
print(len(numbers))
>>> 4
  • max(seznam): vrátí položku v seznamu s maximální hodnotou. Například:
numbers = [2, 5, 7, 9]
print(max(numbers))
>>> 9
  • min(seznam): vrátí položku v seznamu s minimální hodnotou. Například:
numbers = [2, 5, 7, 9]
print(min(numbers))
>>> 2
  • seznam (nice): převede objekt n-tice na seznam. Například;
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]
  • seznam.pop(index): odebere prvek na zadaném indexu ze seznamu. Například;
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]
  • seznam.reverzní(): obrací objekty v seznamu. Například;
values = [2, 5, 7, 10]
values.reverse()
print(values)
>>> [10, 7, 5, 2]
  • seznam.index(element): získat hodnotu indexu prvku v seznamu. Například;
animals = ['cat', 'dog', 'fish', 'cow', 'goat']
fish_index = animals.index('fish')
print(fish_index)
>>> 2
  • součet(seznam): získat součet všech hodnot v seznamu, pokud jsou hodnotami všechna čísla (celá nebo desetinná místa). Například;
values = [2, 5, 10]
sum_of_values = sum(values)
print(sum_of_values)

>>> 17

Pokud seznam obsahuje jakýkoli prvek, který není číslo, například řetězec, metoda součtu nebude fungovat. Dostanete chybu, která říká: „Zadejte Chyba: nepodporované typy operandů pro +: 'int' a 'str'”

  • list.sort(): k uspořádání seznamu celých čísel, čísel s plovoucí desetinnou čárkou nebo řetězců ve vzestupném nebo sestupném pořadí. Například:
values = [1, 7, 9, 3, 5]
# To sort the values in ascending order:
values.sort()
print(values)

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

Jiný příklad:

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

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

Seznam řetězců lze také třídit, buď abecedně, nebo podle délky řetězců. Například;

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

Stejný seznam můžeme seřadit abecedně pomocí 'strings.

Procházení seznamů

Procházení seznamů lze provádět stejným způsobem jako jakoukoli jinou funkci opakování v Python. Tímto způsobem lze metodu provádět na více prvcích seznamu současně. Například:

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

Chcete-li procházet všechny prvky tohoto seznamu a řekněme, ke každému prvku přidejte 10:

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

Chcete-li procházet prvními třemi prvky seznamu a smazat je všechny;

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

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

Pro procházení 3rd (index 2) k poslednímu prvku v seznamu a připojte je k novému seznamu s názvem 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]

Tímto způsobem lze na členy seznamu použít jakoukoli metodu nebo funkci k provedení konkrétní operace. Můžete buď procházet všemi členy seznamu, nebo procházet podmnožinou seznamu pomocí dělení seznamu.

Seznam porozumění Python

Seznam porozumění je Python funkce, které se používají pro vytváření nových sekvencí (jako jsou seznamy, slovníky atd.) pomocí sekvencí, které již byly vytvořeny. Pomáhají redukovat delší smyčky a usnadňují čtení a údržbu vašeho kódu.

Například; řekněme, že chcete vytvořit seznam, který obsahuje druhé mocniny všech čísel od 1 do 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]

Chcete-li udělat totéž s porozuměním seznamu:

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]

Jak je vidět výše, psaní kódu pomocí porozumění seznamu je mnohem kratší než použití tradičních smyček for a je také rychlejší. Toto je jen jeden příklad použití výkladu seznamu namísto cyklů for, ale toto lze replikovat a použít na mnoha místech, kde lze také použít cykly for. Někdy je lepší volba použít cyklus for, zvláště pokud je kód složitý, ale v mnoha případech vám porozumění seznamu usnadní a zrychlí kódování.

Níže je tabulka obsahující některé funkce a metody seznamu a jejich popis.

Vestavěné funkce

FUNKCE POPIS
Kolo() Zaokrouhlí číslo předané jako argument na zadaný počet číslic a vrátí hodnotu s plovoucí desetinnou čárkou
min() vrátit minimální prvek daného seznamu
Max() vrátit maximum prvku daného seznamu
len () Vrátí délku seznamu
Vyjmenovat() Tato vestavěná funkce generuje jak hodnoty, tak indexy položek v iterovatelné, takže nemusíme počítat ručně
Filtr() testuje, zda je každý prvek seznamu pravdivý nebo ne
Lambda Výraz, který se může objevit na místech, kde def (pro vytváření funkcí) není syntaktické, uvnitř literálu seznamu nebo argumentů volání funkce
Mapa() vrátí seznam výsledků po aplikaci dané funkce na každou položku dané iterovatelnosti
Akumulovat() použít konkrétní funkci předanou v jejím argumentu na všechny prvky seznamu vrátí seznam obsahující mezivýsledky
Součet() Vrátí součet všech čísel v seznamu
Cmp() To se používá pro porovnání dvou seznamů a vrátí 1, pokud je první seznam větší než druhý seznam.
Vložit Vložit prvek do seznamu na konkrétní pozici

Seznam metod

FUNKCE POPIS
Připojit() Přidá novou položku na konec seznamu
Průhledná() Odebere všechny položky ze seznamu
Kopírovat() Vrátí kopii původního seznamu
Rozšířit() Přidejte mnoho položek na konec seznamu
Počet() Vrátí počet výskytů konkrétní položky v seznamu
Index() Vrátí index konkrétního prvku seznamu
Pop() Smaže položku ze seznamu na konkrétním indexu (smaže podle pozice)
Odstranit() Odstraní zadanou položku ze seznamu (smazat podle hodnoty)
Reverse() Metoda obrácení na místě, která obrátí pořadí prvků seznamu

Shrnutí

  • Seznam je přesně to, co zní, kontejner, který obsahuje různé Python objekty, což mohou být celá čísla, slova, hodnoty atd.
  • Python seznamy mohou být homogenní, což znamená, že mohou obsahovat stejný typ objektů; nebo heterogenní, obsahující různé typy objektů.
  • Pro přístup k hodnotám v seznamech lze použít index objektů uvnitř seznamů.
  • List slicing je metoda rozdělení podmnožiny seznamu ak tomu slouží také indexy objektů seznamu.
  • Tři metody pro mazání prvků seznamu jsou: 1)list.remove(), 2)list.pop() a 3)operátor del
  • Metoda append se používá k připojení prvků. Tím se prvek přidá na konec seznamu.
  • Metoda smyčkování Python program lze provádět na více prvcích seznamu dat současně.
  • Seznam porozumění je Python funkce, které se používají pro vytváření nových sekvencí (jako jsou seznamy, slovníky atd.) pomocí sekvencí, které již byly vytvořeny.