Wprowadzenie do rozumienia listy w języku Python

Zrozumienie listy w języku Python jest innym sposobem tworzenia list przy użyciu operacji iteracji. Działa tak samo, jak działa pętla, ale LC służy do zwracania list. Wyrażenia listowe mają wyrażenia w nawiasach kwadratowych, takie jak tworzenie normalnej listy, wyrażenie zostanie wykonane dla wszystkich elementów.

Zrozumienie list jest bardzo przydatne w nauce o danych, gdzie odczytuje się listy / filtruje nazwy kolumn / usuwa pozycje z list itp. Chociaż możemy użyć pętli i funkcji lambda do wykonania pewnych czynności, rozumienie list zapewnia elegancki i prosty sposób przedstawienia tego samego.
Wyrażeń listowych można używać do zastępowania metod map (), zmniejszania () i filter ().
Zrozumienie listy jest jak Teoria zestawów z klas licealnych.

Przykład:

( x: x is a natural number greater than 15 )
( x: x is a vowel in word 'Data Science', x is a vowel )

Utwórzmy zestawienie list dla powyższych dwóch instrukcji.

(x for x in range(0, 20) if x>15) (x for x in 'Data Science' if x in ('a', 'e', 'i', 'o', 'u'))

Wynik:

(16, 17, 18, 19) („a”, „a”, „i”, „e”, „e”)

Wyjaśnienia list są łatwe do zrozumienia i wdrożenia. Zasadniczo są one tworzone na tabelach. Podczas pisania składni list ze zrozumieniem należy wziąć pod uwagę trzy kwestie.

  1. Parametr dla wyjścia
  2. Iterowalne
  3. Warunki

Składnia może mieć dwa z powyższych lub 3 z powyższych jako składnia do zrozumienia listy.

Składnia:

(output parameter | The Iterable)
(output Parameter | The Iterable | Condition )

Przykłady zrozumienia listy w języku Python

Tutaj omówimy, jak używać rozumienia listy za pomocą Pythona. Przykłady zobaczymy w inny sposób, ponieważ uruchomimy je za pomocą pętli for, a następnie utworzymy to samo, używając wyrażeń listowych.

Przykład 1: Znalezienie idealnych kwadratów

Oto przykłady idealnych kwadratów w różnych warunkach podanych poniżej:

1. With for Loop

for i in range(1, 30):
if int(i**0.5)==i**0.5:
print(i)

2. Korzystanie ze zrozumień listy

(x for x in range(1, 30) if int(x**0.5)==x**0.5)

Wynik:

Przykład 2: Zdobądź tylko Spółgłoski z Zdania

Tutaj weźmiemy jedno dowolne zdanie i postaramy się uzyskać spółgłoski w tym zdaniu jako nasz wynik.

1. Korzystanie z pętli

def consonants_for(sentence):
vowels = 'aeiou'
consonants = () for x in sentence:
if x not in vowels:
consonants.append(x)
return ''.join(consonants)
sentence = 'we are studying list comprehensions'
print("With For Loop : " + consonants_for(sentence))

Wynik:

With For Loop: wr stdyng lst cmprhnsns

2. Korzystanie ze zrozumienia listy

def consonants_lc(sentence):
vowels = 'aeiou'
return ''.join(( x for x in sentence if x not in vowels))
sentence = 'we are studying list comprehensions'
print("Using List Compr: " + consonants_lc(sentence))

Wynik:

Korzystanie z List Compr: wr stdyng lst cmprhnsns

Przykład 3: Tworzenie słownika z dwóch, w przeciwieństwie do list

Oto przykłady słownika z różnymi warunkami podanymi poniżej:

1. Korzystanie z pętli

def dict_for(keys, values):
dictionary = ()
for i in range(len(keys)):
dictionary(keys(i)) = values(i) return dictionary
Movie = ('RDB', 'Wanted', 'DDLG', 'Sholay', 'War', ) Actor = ('Aamire', 'Salman', 'SRK', 'Amitabh', 'Hritik') print("FOR-loop result: " + str(dict_for(Movie, Actor)))

Wynik:

Wynik pętli FOR: („RDB”: „Aamire”, „Wanted”: „Salman”, „DDLG”: „SRK”, „Sholay”: „Amitabh”, „War”: „Hritik”)

2. Korzystanie ze zrozumienia listy

def dict_lc(keys, values):
return ( keys(i) : values(i) for i in range(len(keys)) )
Movie = ('RDB', 'Wanted', 'DDLG', 'Sholay', 'War', ) Actor = ('Aamire', 'Salman', 'SRK', 'Amitabh', 'Hritik') print("LC result : " + str(dict_lc(Movie, Actor)))

Wynik:

Wynik LC: („RDB”: „Aamire”, „Wanted”: „Salman”, „DDLG”: „SRK”, „Sholay”: „Amitabh”, „War”: „Hritik”)

Korzyści ze zrozumienia listy w języku Python

Wyrażenia listowe wykonują to samo zadanie, ale w inny sposób!

Zrozumienie listy ma wiele zalet w stosunku do pętli i innych metod. Niektóre korzyści są następujące:

  1. Zrozumienie listy jest łatwe do zrozumienia i sprawia, że ​​kod jest elegancki. Możemy napisać program za pomocą prostych wyrażeń.
  2. Zrozumienie listy jest znacznie szybsze niż w przypadku pętli i innych metod, takich jak mapa. (To samo wyjaśniono w poniższym przykładzie:

Jako przykład weźmiemy przykład 1 i obliczymy czas potrzebny różnym metodom na wykonanie tej samej funkcji. Najpierw zobaczymy czas zajęty przez „for loop”, a następnie czas zostanie wykorzystany przez metodę map (), a na koniec zobaczymy czas zajęty przez interpretację listy.

Tabela pokazuje czas potrzebny na różne techniki.

1. Dla pętli

Przykład użycia pętli for podanej poniżej:

Kod:

def perf_square(x):
output = () for i in x:
if int(i**0.5)==i**0.5:
output.append(i)
return output
%timeit perf_square(range(1, 30))

2. Metoda mapy

Przykład użycia metody mapy podanej poniżej:

Kod:

def perf_square_map(x):
return map(lambda i: i**0.5==i**0.5, x)
%timeit perf_square_map(range(1, 30))

3. Zrozumienie listy

Przykład z wykorzystaniem poniższego opisu listy:

Kod:

def perf_square_lc(x):
return (i**0.5 == i**0.5 for i in x) %timeit perf_square_lc(range(1, 30))

Wynik:

metodaCzas
Dla pętli787 ns
Metoda Map ()518 ns
Zrozumienie listy276 ns

Wyraźnie czas wykonania listy jest 2, 85 razy szybszy niż w przypadku pętli i 1, 87 razy szybszy niż metoda mapy. Wyrażenia listowe pozostawiają inne metody z dużym marginesem. Mogą być spekulacje, więc dlaczego nie używamy LC we wszystkich miejscach, a nie w pętlach? LC jest szybsza w większości przypadków i może zastąpić pętle w prawie 80% przypadków. Ale nie możemy zastąpić pętli, istnieją przypadki, w których mamy dobrą liczbę warunków, a klasy są zagnieżdżone w pętli. W takich przypadkach użycie LC może być dość kłopotliwe i niewykonalne. W takich sytuacjach lepiej jest szukać pętli. Chociaż można użyć funkcji Wypisywanie listy w przypadku pętli, aby zastąpić inne w przypadku pętli. Zmniejszy to czas wykonywania, a także utrzyma przyjazność kodu dla użytkownika.

  • Możemy zagnieżdżać wiele warunków na liście.
  • LC może wykonywać operacje na wielu zmiennych.
  • Aby uzyskać dane wyjściowe, nie trzeba podawać osobnego polecenia.
  • Wyjaśnienia list zmniejszają złożoność kodu.
  • Zrozumienie listy jest wydajne.

Wniosek

Rozumienia list są używane do tworzenia list z iteracyjnego procesu. Wykazy list są łatwe do zrozumienia / wdrożenia i sprawiają, że kod jest elegancki. Rozumienie listy jest zwarte i przyjazne dla użytkownika.

Omówiliśmy składnię wyrażeń listowych oraz kilka dobrych, wnikliwych przykładów. W końcu napisaliśmy jeden program, aby uzyskać czas z każdej metody. Doszliśmy do wniosku, że LC jest 2, 85 razy szybszy niż dla pętli i 1, 87 razy szybszy niż metoda map ().

Polecane artykuły

Jest to przewodnik po zrozumieniu listy w języku Python. Tutaj omawiamy zalety zrozumienia listy python wraz ze składnią i przykładami z różnymi warunkami. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej-

  1. Konstruktor w Javie
  2. Sortowanie w Javie
  3. Konstruktor w Javie
  4. JCheckBox w Javie
  5. Przewodnik po sortowaniu w C # z przykładami
  6. Funkcja sortowania w Pythonie z przykładami
  7. Pętle w VBScript z przykładami
  8. Przykłady implementacji pola wyboru w Bootstrap