0Pricing
Competitive Programming Academy · Lekcja

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])  # 4

Dotrzyj 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])  # 3

Jaka 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))  # 4

Pobierz 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 untouched

Bezpieczne 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

  1. Listy, indeksowanie i wycinanie dla CP
  2. Szybkie tworzenie tablic za pomocą comprehension
  3. Min, max, suma i sumy narastające
  4. Znajdowanie indeksu, nie tylko wartości
← Powrót do Competitive Programming Academy