Pyton

Listy składane w Pythonie

Listy składane w Pythonie
Listy składane są często używane w Pythonie do pisania jednowierszowych instrukcji, które tworzą nową listę lub słownik przez zapętlenie obiektu iterowalnego. W tym artykule wyjaśnimy, jak używać list składanych w Pythonie, zaczynając od podstawowego wyjaśnienia, jak działają pętle for w Pythonie.

Pętla w Pythonie

Instrukcja pętli for w Pythonie sekwencyjnie iteruje po członkach dowolnego obiektu, listy, łańcucha itp. W porównaniu z innymi językami programowania jego składnia jest znacznie czystsza i nie wymaga ręcznego definiowania kroków iteracji i uruchamiania iteracji. Chociaż istnieją sposoby, aby jego zachowanie było takie samo jak inne języki programowania (nie zostaną omówione w tym artykule). Możesz także sprawować pewną kontrolę nad pętlami for, używając instrukcji takich jak continue, break, pass itp. Poniżej znajduje się prosty przykład pętli for w Pythonie:

dla x w zakresie(10):
drukuj(x)

Pętla for powyżej wypisze dziesięć liczb zaczynających się od 0 i kończących się na 9.

Lista ze zrozumieniem

Zrozumienie listy to nic innego jak skrócony / zwięzły sposób na pisanie wielowierszowych pętli for w jednowierszowej instrukcji. Poniższy przykład rozumienia listy utworzy nową listę jako [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] poprzez uwzględnienie w niej wszystkich wartości „x”.

liczby = [x dla x w zakresie(10)]
druk (liczby)

Zauważ, że zrozumienie listy zawsze tworzy nową listę i nie modyfikuje oryginalnych iterowalnych użytych w wyrażeniu. Typowe wyrażenie listowe musi zawierać klauzulę „for”, po której mogą występować instrukcje warunkowe „if” i „else”. Powyższy przykład zostanie napisany w następujący sposób bez użycia listu składanego:

liczby = []
dla x w zakresie(10):
liczby.dołącz(x)
druk (liczby)

Wydajność i czytelność

Listy składane są szybsze niż pętle for. Jeśli jednak nie przeszukujesz setek tysięcy elementów, nie zauważysz znaczących ulepszeń wydajności. Podczas gdy zrozumienie list zapewnia zwięzły sposób pisania pętli, złożone wyrażenia mogą prowadzić do słabej czytelności kodu i zwiększonej szczegółowości. Ważne jest, aby kod był czytelny, chyba że osiągnięcie maksymalnej wydajności jest absolutną koniecznością dla Twojego programu.

Przykład: Używanie składni list składanych ze słownikami i zestawami

Słownik Pythona to zbiór elementów zdefiniowanych w parach klucz-wartość, podczas gdy zbiór to zbiór unikalnych wartości, w których duplikaty są niedozwolone. Listy składane mogą być również używane ze słownikami i zestawami Pythona. Składnia nieco się różni, zamiast zawijania wyrażenia w nawiasy kwadratowe, będziesz musiał teraz używać nawiasów klamrowych. Otrzymasz również nowy słownik / obiekt zestawu zamiast nowej listy.

data = "city": "nowy jork", "name": "jan kowalski"
sformatowane_dane = k: v.title() dla k,v w danych.przedmiotów()
drukuj (dane sformatowane)

Powyższy przykład przekonwertuje wartości ciągu na wielkość liter i utworzy nowy słownik o nazwie „formatted_data”, którego wynikiem będzie: 'city': 'New York', 'name': 'John Doe'. Możesz również zmienić słownik / ustawić w miejscu, określając istniejącą zmienną słownika po lewej stronie.

data = "city": "nowy jork", "name": "jan kowalski"
dane = k: v.title() dla k,v w danych.przedmiotów()
drukuj (dane)

Bez użycia tłumaczeń słownikowych kod wyglądałby tak:

data = "city": "nowy jork", "name": "jan kowalski"
sformatowane_dane =
dla k, v w danych.przedmiotów():
sformatowane_dane[k] = v.tytuł()
drukuj (dane sformatowane)

Ponieważ w zestawach nie ma par klucz-wartość, zrozumienie zestawu można zdefiniować w taki sam sposób, jak zrozumienie listy. Jedyną różnicą jest użycie nawiasów klamrowych.

Przykład: wiele pętli for w zrozumieniu listy

Wspomniany powyżej przykład ze zrozumieniem listy jest prosty i używa pojedynczego wyrażenia „for”. Poniżej znajduje się przykład, który używa wielu pętli for i warunkowej instrukcji „if”.

przymiotniki = ["Disco", "Eoan", "Ogniskowa", "Artful"]
zwierzęta = ["Dingo", "Ermine", "Fossa", "Bóbr"]
kryptonimy = [x + " " + y dla x w przymiotnikach dla y u zwierząt jeśli y.zaczyna się(x[0])]
druk (kryptonimy)

Kod pokaże ['Disco Dingo', 'Eoan Ermine', 'Focal Fossa'] jako dane wyjściowe. Dwie pętle for przechodzą nad listami „przymiotników” i „zwierząt”, a ich elementy są łączone ze sobą za pomocą spacji, tylko jeśli pierwsza litera obu słów jest taka sama. Bez użycia list składanych kod wyglądałby tak:

przymiotniki = ["Disco", "Eoan", "Ogniskowa", "Artful"]
zwierzęta = ["Dingo", "Ermine", "Fossa", "Bóbr"]
kryptonimy = []
dla x w przymiotnikach:
dla y u zwierząt:
jeśli ty.zaczyna się(x[0]):
kryptonimy.dołącz(x + " " + y)
druk (kryptonimy)

Przykład: Lista ze zrozumieniem z klauzulą ​​if-else

Poniższy przykład pokaże użycie instrukcji if i else w listach składanych.

lista_numerów = [1, 2, 3, 4]
inna_lista = [5, 6, 7, 8]
wynik = [True if (x + y) % 2 == 0 else False for x in number_list for y in other_list]
drukuj (wynik)

Podczas przechodzenia przez dwie listy, powyższe rozumienie listy sprawdza, czy suma pary elementów jest parzysta, czy nie. Uruchomienie powyższego kodu spowoduje wyświetlenie [True, False, True, False, False, True, False, True, True, False, True, False, False, True, False, True] jako dane wyjściowe. Bez korzystania ze zrozumienia list kod wyglądałby tak:

lista_numerów = [1, 2, 3, 4]
inna_lista = [5, 6, 7, 8]
wynik = []
dla x w number_list:
dla y w other_list:
jeśli (x + y) % 2 == 0:
wynik.dołącz (prawda)
jeszcze:
wynik.dołącz (Fałsz)
drukuj (wynik)

Wniosek

Listy składane zapewniają dobry sposób na pisanie czystych i zwięzłych instrukcji pętli. Jednak mogą one szybko stać się skomplikowane i trudne do zrozumienia, jeśli używa się wielu pętli i instrukcji warunkowych. W końcu chodzi o poziom komfortu programisty, ale generalnie dobrym pomysłem jest pisanie wyraźnego, czytelnego i łatwego do debugowania kodu zamiast nadmiernego używania skrótów.

Gry Top 10 Games to Play on Ubuntu
Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
Gry 5 najlepszych gier zręcznościowych dla systemu Linux
5 najlepszych gier zręcznościowych dla systemu Linux
W dzisiejszych czasach komputery to poważne maszyny używane do gier. Jeśli nie możesz uzyskać nowego wysokiego wyniku, będziesz wiedział, o co mi chod...
Gry Bitwa o Wesnoth 1.13.6 Wydanie rozwojowe
Bitwa o Wesnoth 1.13.6 Wydanie rozwojowe
Bitwa o Wesnoth 1.13.6 wydana w zeszłym miesiącu jest szóstą wersją rozwojową w 1.13.Seria x i zapewnia szereg ulepszeń, w szczególności w interfejsie...