1.5.4. Pobierz n liczb¶
ZADANIE: Pobierz od użytkownika n liczb i zapisz je w liście. Wydrukuj: elementy listy i ich indeksy, elementy w odwrotnej kolejności, posortowane elementy. Usuń z listy pierwsze wystąpienie elementu podanego przez użytkownika. Usuń z listy element o podanym indeksie. Podaj ilość wystąpień oraz indeks pierwszego wystąpienia podanego elementu. Wybierz z listy elementy od indeksu i do j.
POJĘCIA: tupla, lista, metoda.
Wszystkie poniższe przykłady warto wykonać w konsoli Pythona.
Treść komunikatów w funkcjach print
można skrócić.
Można również wpisywać kolejne polecenia do pliku i sukcesywanie go uruchomiać.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #! /usr/bin/env python
# -*- coding: utf-8 -*-
# ~/python/04_1_listy.py
tupla = input("Podaj liczby oddzielone przecinkami: ")
lista = []
for i in range(len(tupla)):
lista.append(int(tupla[i]))
print "Elementy i ich indeksy:"
for i, v in enumerate(lista):
print v, "[", i, "]"
print "Elementy w odwróconym porządku:"
for e in reversed(lista):
print e,
print ""
print "Elementy posortowane rosnąco:"
for e in sorted(lista):
print e,
print ""
e = int(raw_input("Którą liczbę usunąć? "))
lista.remove(e)
print lista
print "Dodawanie elementów do listy"
a, i = input("Podaj element i indeks oddzielone przecinkiem: ")
lista.insert(i, a)
print lista
print "Wyszukiwanie i zliczanie elementu w liście"
e = int(raw_input("Podaj liczbę: "))
print "Liczba wystąpień: "
print lista.count(e)
print "Indeks pierwszego wystąpienia: "
if lista.count(e):
print lista.index(e)
else:
print "Brak elementu w liście"
print "Pobieramy ostatni element z listy: "
print lista.pop()
print lista
print "Część listy:"
i, j = input("Podaj indeks początkowy i końcowy oddzielone przecinkiem: ")
print lista[i:j]
|
Funkcja input()
pobiera dane wprowadzone przez użytkownika podobnie jak
jak raw_input()
, ale próbuje zinterpretować je jako kod Pythona.
Podane na wejściu liczby oddzielone przecinkami zostają spakowane jako
tupla (krotka). Jest to uporządkowana sekwencja poindeksowanych danych,
przypominająca tablicę, której wartości nie można zmieniać. Zainicjowanie
tupli wartościami od razu w kodzie jest proste: tupla = (4, 3, 5)
.
Lista to również uporządkowane sekwencje indeksowanych danych, zazwyczaj tego samego typu, które jednak możemy zmieniać.
Note
W definicji tupli nawiasy są opcjonalne, można więc pisać tak: tupla = 3, 2, 5, 8
Oprócz tupli i list sekwencjami są w Pythonie również napisy.
Dostęp do elementów sekwencji uzyskujemy podając nazwę i indeks, np. lista[0]
.
Elementy indeksowane są od 0 (zera!). Z każdej sekwencji możemy wydobywać fragmenty
dzięki notacji wycinkowej (ang. slice), np.: lista[1:4]
.
Funkcje działające na sekwencjach:
len()
– zwraca ilość elementów;enumerate()
– zwraca obiekt zawierający indeksy i elementy sekwencji;reversed()
– zwraca obiekt zawierający odwróconą sekwencję.sorted(lista)
– zwraca kopię listy posortowanej rosnąco;sorted(lista, reverse=True)
– zwraca kopię listy w odwrotnym porządku;
Lista ma wiele użytecznych metod:
.append(x)
– dodaje x do listy;.remove(x)
– usuwa pierwszy x z listy;.insert(i, x)
– wstawia x przed indeksem i;.count(x)
– zwraca ilość wystąpień x;.index(x)
– zwraca indeks pierwszego wystąpienia x;.pop()
– usuwa i zwraca ostatni element listy;.sort()
– sortuje listę rosnąco;.reverse()
– sortuje listę w odwróconym porządku.
1.5.4.1. Zadania dodatkowe¶
Utwórz w konsoli Pythona dowolną listę i przećwicz notację wycinkową.
Sprawdź działanie indeksów pustych i ujemnych, np. lista[2:], lista[:4], lista[-2], lista[-2:]
.
Posortuj trwale dowolną listę malejąco. Utwórz kopię listy posortowaną rosnąco.
Materiały Python 101
udostępniane przez
Centrum Edukacji Obywatelskiej na licencji
Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowa.
Utworzony: | 2017-09-08 o 19:38 w Sphinx 1.4.5 |
---|---|
Autorzy: | Patrz plik “Autorzy” |