Iterowanie po literach po elementach listy.

Iterowanie po literach po elementach listy.
meiji
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Mysłowice
  • Postów: 12
0

Hej, mam szybkie pytanie, mianowicie jak iterować w Pythonie po literach po elementach listy (zakładając, że każdy element listy jest typu str). Przykładowo mamy listę państw:

Kopiuj
countries_list = [Polska, Czechy, Francja, Japonia]

I chcemy wyświetlić tylko państwa, które mają w nazwie literę „e”.
Z góry dzięki za pomoc.

Spine
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6967
3
Kopiuj
for country in countries_list:
    for letter in country:
        if letter == 'e':
            print(country)
            break

Ale to by było przekombinowane, bo w Pythonie możesz sprawdzić, czy 'e' jest w stringu bez jawnego iterowania:

Kopiuj
for country in countries_list:
    if 'e' in country:
        print(country)

BTW. w Twojej liście państw brakuje cudzysłowów.

meiji
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Mysłowice
  • Postów: 12
1

Na podwójnego fora też wpadłem zaraz po dodaniu posta, ale o drugim sposobie nie wiedziałem, a przyda się do wyrażenia listowego. Także wielkie dzięki :)

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2384
3

Możesz też użyć wbudowanych funkcji takich jak filter, wówczas kod może wyglądać tak:

Kopiuj
countries = ['Polska', 'Czechy', 'Francja', 'Japonia', 'Indie']
counteris_with_e = filter(lambda country: 'e' in country, countries)

print("Odfiltrowane kraje = {}".format(list(counteris_with_e)))

filter zwróci Ci iterable, więc albo iterujesz po tym, albo przerabiasz na listę.

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.