124
Rozdział 3.
Zbiory nie znos duplikatów
Wydajne tworzenie zbiorów
Ponownie przyjrzyjmy się kodowi programu vowels3.py, w którym do sprawdzenia,
czy samogłoski występują w zadanym słowie, wykorzystywana była lista.
Poniżej zaprezentowaliśmy ten kod raz jeszcze. Zauważ, że teraz mamy już w nim
zaimplementowaną logikę, dzięki której każda samogłoska odnotowywana jest tylko
raz. Z pełną premedytacją wyeliminowaliśmy tu
jakąkolwiek możliwość dodania
duplikatów do listy
found
.
obiekt b
obiekt f
obiekt a
obiekt e
obiekt d
obiekt c
Zbiór
Zanim przejdziesz dalej, skorzystaj ze środowiska IDLE, aby zapisać ten kod w pliku o nazwie
vowels7.py, dzięki czemu będziemy mogli swobodnie wprowadzać w nim zmiany, nie martwiąc
się, że zepsujemy nasze rozwiązanie wykorzystujące w swoim działaniu listy (o którym wiemy,
że funkcjonuje zgodnie z oczekiwaniami). Ponieważ stało się to już naszą rutynową praktyką,
poeksperymentujmy w wierszu poleceń powłoki, zanim zabierzemy się do wprowadzania zmian
w kodzie programu
vowels7.py. Kod widoczny w oknie edycji środowiska IDLE zaczniemy
edytować dopiero wtedy, gdy uda nam się już wypracować odpowiednie rozwiązanie w powłoce.
Tworzenie zbiorów z sekwencji
Zaczniemy od utworzenia zbioru samogłosek za pomocą kodu przedstawionego w połowie
poprzedniej strony (krok ten możesz pominąć, jeśli wpisałeś już odpowiednią instrukcję po znaku
zachęty
>>>
wiersza poleceń powłoki).
>>> vowels = { ‘a’, ‘e’, ‘e’, ‘i’, ‘o’, ‘u’, ‘u’ }
>>> vowels
{‘i’, ‘u’, ‘o’, ‘e’, ‘a’}
Poniżej zaprezentowany został wygodny sposób osiągnięcia tego samego efektu. Umożliwia on szybkie
wygenerowanie zbioru za pomocą funkcji
set
, której przekazuje się dowolną sekwencję (na przykład
łańcuch znakowy). Sposób ten został pokazany na przykładzie tworzenia zbioru samogłosek.
>>> vowels2 = set(‘aeeiouu’)
>>> vowels2
{‘i’, ‘u’, ‘o’, ‘e’, ‘a’}
To kod programu
vowels3.py, który
wyświetla unikatowe
samogłoski znalezione
w podanym słowie.
W kodzie tym
w roli podstawowej
struktury danych
została wykorzystana
lista.
Nie dopuszczamy do
pojawienia się duplikatów
na liście found.
Te dwa wiersze kodu
spełniają to samo
zadanie: każdy z nich
przypisuje nowy obiekt
zbioru do zmiennej.

Get Python Rusz głową! Wydanie II now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.