Listy, indeksowanie i wycinanie dla CP
Dostęp, wycinanie i odwracanie bez błędów off-by-one
Listy, indeksowanie i wycinanie dla CP to bezpłatna lekcja Competitive Programming Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Competitive Programming Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Competitive Programming Academy zawiera 4 lekcji w sumie.
Podstawowe narzędzie w konkursach
W Pythonie stosowanym w konkursach list pełni rolę podstawowej tablicy. Przechowuje elementy w kolejności i powiększa się w razie potrzeby, dlatego większość zadań zaczyna się właśnie od niej.
a = [4, 1, 7, 3]Indeksowanie od zera
Listy używają indeksowania od zera, więc a[0] jest pierwszym elementem. Zapomnienie o tym to klasyczny błąd off-by-one, który kosztuje łatwe punkty.
a = [4, 1, 7, 3]
print(a[0]) # 4Dotrzyj do końca od tyłu
Indeksy ujemne liczą od prawej strony, więc a[-1] jest ostatnim elementem. Nie trzeba samodzielnie obliczać len(a) - 1.
a = [4, 1, 7, 3]
print(a[-1]) # 3Jaka jest długość?
Za pomocą len(a) można uzyskać liczbę elementów. Prawidłowe indeksy mieszczą się wtedy od 0 do len(a) - 1 i nigdy nie wykraczają poza tę wartość.
a = [4, 1, 7, 3]
print(len(a)) # 4Pobierz wycinek
Wycinek a[i:j] pobiera elementy od indeksu i do j, ale bez elementu o indeksie j. Prawy koniec jest zawsze wyłączony.
a = [4, 1, 7, 3]
print(a[1:3]) # [1, 7]Wycinki z otwartym końcem
Pozostawienie jednej strony pustej pozwala sięgnąć do krawędzi. a[:k] pobiera pierwszych k elementów, a a[k:] pobiera wszystko od k wzwyż.
a = [4, 1, 7, 3]
print(a[:2], a[2:])Przechodź ze skokiem
Trzecia liczba określa krok. a[::2] pobiera co drugi element, co przydaje się do rozdzielania pozycji parzystych i nieparzystych.
a = [4, 1, 7, 3]
print(a[::2]) # [4, 7]Odwróć jednym ruchem
Krok równy -1 odwraca listę. a[::-1] zwraca odwróconą kopię bez modyfikowania oryginału, co świetnie sprawdza się przy palindromach.
a = [4, 1, 7, 3]
print(a[::-1]) # [3, 7, 1, 4]Wycinki tworzą kopie
Wycinanie zwraca nową listę, więc a[:] jest szybkim sposobem na utworzenie płytkiej kopii. Modyfikowanie kopii nie zmieni oryginalnej tablicy.
b = a[:]
b[0] = 99 # a is untouchedBezpieczne granice zamiast awarii
Odczyt a[len(a)] powoduje IndexError, czyli natychmiastowy werdykt błędu wykonania. Zawsze należy sprawdzić, czy indeks znajduje się wewnątrz listy.
if i < len(a):
use(a[i])Wycinki nigdy nie powodują awarii
W przeciwieństwie do indeksowania wycinek wychodzący poza zakres jest wyrozumiały. a[2:99] po prostu zwraca istniejące elementy, po cichu ograniczając koniec do końca listy.
a = [4, 1, 7, 3]
print(a[2:99]) # [7, 3]Szybki test
Sprawdź swoje wyczucie wycinków na małej liście.
Podsumowanie: listy w praktyce
Można już bezpiecznie indeksować od obu końców, pobierać zakresy, stosować krok i odwracać listy. Te podstawy list są fundamentem wszystkich kolejnych zadań dotyczących tablic. 🚀
Często zadawane pytania
Czy lekcja „Listy, indeksowanie i wycinanie dla CP” jest bezpłatna?
Tak — pełny tekst „Listy, indeksowanie i wycinanie dla CP” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Competitive Programming Academy, przejdź na CoddyKit PRO. Kurs Competitive Programming Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Listy, indeksowanie i wycinanie dla CP”?
Dostęp, wycinanie i odwracanie bez błędów off-by-one Ćwiczysz Competitive Programming Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Competitive Programming Academy?
Nie wymagamy żadnego doświadczenia. Competitive Programming Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Listy, indeksowanie i wycinanie dla CP”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Competitive Programming Academy?
Tak. Każda lekcja Competitive Programming Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Listy, indeksowanie i wycinanie dla CP
- Szybkie tworzenie tablic za pomocą comprehension
- Min, max, suma i sumy narastające
- Znajdowanie indeksu, nie tylko wartości