Na forum 4programmers.net korzystamy z plików cookies. Część z nich jest niezbędna do funkcjonowania
naszego forum, natomiast wykorzystanie pozostałych zależy od Twojej dobrowolnej zgody, którą możesz
wyrazić poniżej. Klikając „Zaakceptuj Wszystkie” zgadzasz się na wykorzystywanie przez nas plików cookies
analitycznych oraz reklamowych, jeżeli nie chcesz udzielić nam swojej zgody kliknij „Tylko niezbędne”.
Możesz także wyrazić swoją zgodę odrębnie dla plików cookies analitycznych lub reklamowych. W tym celu
ustaw odpowiednio pola wyboru i kliknij „Zaakceptuj Zaznaczone”. Więcej informacji o technologii cookie
znajduje się w naszej polityce prywatności.
jak posortować samogłoski w sprawdzanym słowie aby były w kolejności alfabetycznej?
próbowałem jak poniżej, nie działa. gdzie popełniam błąd? Z góry dziękuję za pomoc
Kopiuj
word=(input("podaj slowo do sprawdzenia samoglosek"))
vowels ={'i','y','e','u','o','a'}
word=set(word)for letter in word:if letter in vowels:set(letter)sorted(letter)print(letter)
Chcesz posortować litery w tym wejściowym słowie? To zrób właśnie to... Weź to wpisane słowo i posortuj!
Kopiuj
word=sorted(list(set(word)))
Możesz też odwrócić logikę i zrobić pętlę po twoim vowels i sprawdzać czy któraś jest w tym set(word), ale to teraz źle zadziała, bo vowels to set i nie zachowuje kolejności ktorą masz w kodzie. Musiałbyś tam zrobić listę.
Shalom, nie wyraziłem się precyzyjnie. Skrypt miał wyświetlać znalezione samogłoski w wpisanym słowie- bez duplikatów. Chciałem by samogłoski wynikowe były posortowane alfabetycznie.
No i będą jeśli zrobisz tak jak napisałem ;) Ale możesz też zbierać te pasujące samogłoski w liście i tą wynikową listę posortować przed wypisaniem. Gdzie jest problem?
word=(input("podaj slowo do sprawdzenia samoglosek"))
vowels ={'i','y','e','u','o','a'}
word=set(word)
lista=[]for letter in word:if letter in vowels:
lista.append(letter)
lista.sort()print(lista)
lista = sorted([letter for letter in word if letter in vowels]) ;)
Dałem łapkę i znaczek bo rozwiązanie działa , ale mam jedno pytanie.
czy autor mógłby mi wyjaśnić po co na początku kodu zmienna letter.tzn[ letter for letter in word if letter in vowels]
kombinuje tak, za pomoca petli for sprawdzamy czy poszczególne litery word należą do zbioru samogłosek vowels i co dalej ?
tworzymy listę i sortujemy ja? co robi letter na początku
Pythonem jak i całym programowaniem zajmuje się hobbystycznie, od czasu do czasu i nie zawsze szybko łapie o co chodzi zawodowcom
List comprehension ma postać [expression for variable in iterable if condition] i wynikiem jest lista wyników expression po jednym dla każdego elementu iterable o ile warunek condition dla niego jest spełniony. Np.
[1 for x in [1,2,3]] zrobi nam listę [1,1,1] a [1 for x in [1,2,3] if x > 2] zrobi listę [1] bo tylko dla 3 warunek jest spełniony więc wynikowa lista ma 1 element. Zwykle jednak chcemy żeby expression było jakoś związane z tym po czym iterujemy, więc np. [x for x in [1,2,3]] zwróci nam [1,2,3] a [x for x in [1,2,3] if x > 2] zwróci [3].
Analogicznie możemy też zrobić np. [x*2 for x in [1,2,3]] które zwróciłoby [2,4,6] bo nasze expression podwaja elementy zbioru po którym iterujemy.
Usunąć wpis?
Tej operacji nie będzie można cofnąć.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.