Opanowanie notacji plasterków w Pythonie
Krojenie w Pythonie to potężna funkcja, która umożliwia dostęp do podzbioru elementów z listy, krotki lub ciągu znaków. Niezależnie od tego, czy używasz podstawowych plasterków, takich jak [:], czy bardziej zaawansowanych, takich jak a[x:y:z], zrozumienie działania plasterków może znacznie zwiększyć wydajność kodowania.
W tym artykule zagłębimy się w mechanikę notacji wycinków w Pythonie, wyjaśnimy, dlaczego wycinki mają charakter wyłączny w górnej granicy, zademonstrujemy, jak tworzyć nowe listy z każdym n-tym elementem i wyjaśnimy, jak działają przypisania z wycinkami list. Na koniec będziesz mieć solidną wiedzę na temat krojenia w Pythonie.
Komenda | Opis |
---|---|
slice = a[::2] | Tworzy nową listę zawierającą co drugi element z oryginalnej listy. |
slice = a[::-1] | Odwraca listę a. |
slice = a[1:7:2] | Wyodrębnia elementy o indeksach od 1 do 6 z krokiem 2. |
slice1 = xs[0:2] | Wyodrębnia elementy o indeksie 0 do 1 z listy xs. |
nth_list = a[::3] | Tworzy nową listę zawierającą co trzeci element z oryginalnej listy. |
xs[0:2] = ["a", "b"] | Zastępuje elementy o indeksach 0 i 1 w xs literami „a” i „b”. |
print(slice) | Wysyła zawartość wycinka zmiennej do konsoli. |
Odkrywanie notacji plasterków Pythona
Powyższe skrypty demonstrują różne sposoby wykorzystania notacji plasterków Pythona do efektywnego manipulowania listami. Pierwszy skrypt pokazuje podstawowe krojenie, podczas którego tworzymy podzbiory listy a przy użyciu różnych notacji plasterków. Na przykład, a[2:5] wyodrębnia elementy z indeksu od 2 do 4, podczas gdy a[:3] pobiera pierwsze trzy elementy. The a[::2] składnia wyodrębnia co drugi element z listy, oraz a[::-1] odwraca listę. Te techniki krojenia pozwalają na elastyczną ekstrakcję i manipulację danymi, ułatwiając pracę z podzbiorami danych bez zmiany oryginalnej listy.
Drugi skrypt wyjaśnia koncepcję górnej granicy wyłączności w krojeniu. W xs[0:2], elementy o indeksach 0 i 1 są uwzględnione, ale indeks 2 jest wykluczony. To zachowanie jest spójne z indeksowaniem od zera w języku Python i pomaga zapobiegać błędom o jeden. Trzeci skrypt tworzy nową listę przy użyciu każdego n-tego elementu z oryginalnej listy a[::3], pokazując, jak można wykorzystać krojenie do próbkowania lub pomijania elementów. Czwarty skrypt pokazuje, jak przypisać nowe wartości do określonych wycinków listy. Używając xs[0:2] = ["a", "b"], elementy o indeksach 0 i 1 zastępuje się literami „a” i „b”. Możliwość przypisywania wartości do wycinków ułatwia efektywne modyfikowanie części listy.
Jak pracować z notacją plasterków w Pythonie
Przykłady krojenia w Pythonie
# Basic slicing
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
slice1 = a[2:5] # [2, 3, 4]
slice2 = a[:3] # [0, 1, 2]
slice3 = a[::2] # [0, 2, 4, 6, 8]
slice4 = a[1:7:2] # [1, 3, 5]
slice5 = a[::-1] # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
print(slice1)
print(slice2)
print(slice3)
print(slice4)
print(slice5)
Zrozumienie górnej granicy wyłączności w plasterkach Pythona
Wyjaśnienie górnej granicy wycinka Pythona
# Explanation of upper-bound exclusivity
xs = [10, 20, 30, 40, 50]
slice1 = xs[0:2] # [10, 20]
slice2 = xs[:3] # [10, 20, 30]
print(slice1)
print(slice2)
# The end index is not included in the slice
# xs[0:2] includes xs[0] and xs[1], but not xs[2]
Tworzenie nowej listy z każdą n-tą pozycją
Krojenie listy Pythona dla n-tych elementów
# Creating a new list with every Nth item
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
nth_list = a[::3] # [0, 3, 6, 9]
print(nth_list)
Przypisywanie wartości za pomocą wycinków listy
Przypisanie plasterka Pythona
# Assignment with list slices
xs = [10, 20, 30, 40, 50]
xs[0:2] = ["a", "b"] # xs becomes ['a', 'b', 30, 40, 50]
print(xs)
Zagłęb się w notację plasterków Pythona
Oprócz podstawowego krojenia, notację plasterków Pythona można zastosować w bardziej zaawansowany sposób do obsługi różnych zadań manipulacji danymi. Jednym z potężnych aspektów jest indeksowanie ujemne, które pozwala wycinać od końca listy. Na przykład, a[-3:] pobiera trzy ostatnie elementy listy a. Może to być niezwykle przydatne przy uzyskiwaniu dostępu do elementów na końcu listy bez znajomości jej długości. Kolejną zaawansowaną funkcją jest łączenie plasterków z innymi operacjami na listach, takimi jak sortowanie lub filtrowanie. Możesz sortować fragment listy za pomocą sorted(a[2:5]), która zwraca posortowaną wersję elementów o indeksach od 2 do 4 bez zmiany oryginalnej listy.
Ponadto cięcia można używać w przypadku list wielowymiarowych lub list list. Na przykład, jeśli masz listę 2D, możesz oddzielnie dzielić wiersze i kolumny. Za pomocą matrix[:2] pobiera pierwsze dwa wiersze, while [row[:2] for row in matrix] pobiera pierwsze dwie kolumny każdego wiersza. Zrozumienie tych zaawansowanych technik krojenia może znacznie zwiększyć możliwości wydajnego manipulowania złożonymi strukturami danych. Notacja plasterków w Pythonie to nie tylko narzędzie umożliwiające dostęp do części listy, ale także potężna funkcja do analizy i manipulacji danymi.
Często zadawane pytania i odpowiedzi dotyczące notacji plasterków w języku Python
- Jaka jest składnia podstawowego krojenia w Pythonie?
- Podstawowa składnia krojenia to a[start:stop:step], Gdzie start jest indeksem początkowym, stop jest indeksem końcowym (wyłącznym), oraz step określa przyrost pomiędzy indeksami.
- Jak odwrócić listę za pomocą krojenia?
- Listę można odwrócić, korzystając z notacji wycinka a[::-1].
- Jak uzyskać dostęp do ostatniego elementu listy?
- Dostęp do ostatniego elementu listy można uzyskać za pomocą a[-1].
- Co robi a[:3] powrót?
- Zwraca pierwsze trzy elementy listy a.
- Czy możesz modyfikować elementy listy za pomocą krojenia?
- Tak, możesz przypisać nowe wartości do plasterków, np a[0:2] = [9, 8], który zastępuje dwa pierwsze elementy liczbami 9 i 8.
- Jak podzielić listę, aby uzyskać co drugi element?
- Możesz uzyskać co drugi element za pomocą a[::2].
- Co się stanie, jeśli pominiesz indeks początkowy w plasterku?
- Jeśli indeks początkowy zostanie pominięty, plasterek zacznie się od początku listy, jak w a[:3].
- Jak podzielić listę 2D, aby uzyskać określone kolumny?
- Możesz dzielić kolumny na liście 2D, korzystając ze zrozumienia list, np [row[:2] for row in matrix] aby uzyskać dwie pierwsze kolumny.
- Co oznacza ujemne indeksowanie w plasterkach?
- Indeksowanie ujemne oznacza liczenie od końca listy, tzw a[-3:] pobiera trzy ostatnie elementy.
Ostatnie przemyślenia na temat krojenia w Pythonie
Notacja plasterków w języku Python to wszechstronne narzędzie upraszczające zadania manipulacji danymi. Niezależnie od tego, czy odwracasz listę, wyodrębniasz określone elementy, czy modyfikujesz zawartość listy, dzięki krojeniu te operacje są proste i wydajne. Zrozumienie niuansów wycinania, w tym zaawansowanych technik, takich jak indeksowanie ujemne i wycinanie wielowymiarowe, może znacznie zwiększyć Twoje umiejętności programowania i wydajność.