filter() fragen
Verfasst: Freitag 23. Oktober 2020, 23:24
Hi, ich lerne gerade das built-in filter. wie ich verstanden habe, referenziert die filter nur an die ürsprungliche liste "letters". Sowei so gut,
aber ich habe eine Frage: warum kann ich eine filter object nur einmal seine Werten auslesen?
unten findet ihr eine klassische Beispiel eines Filters. aber sobal ich ausgeführt habe, meine For-Loop ist leer
Was passiert mit dem filter objekt?
<code>
letters = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
def filterVowels(letter):
vowels = ['a', 'e', 'i', 'o', 'u']
if letter in vowels:
return True
else:
return False
filteredVowels = filter(filterVowels, letters)
list_filteredVowels = list(filteredVowels) # if I run this line, the for-loop is empty! If I run this line after the for-loop is the list empty!
print('The filtered vowels are:')
for vowel in filteredVowels:
print(vowel)
</code>
aber ich habe eine Frage: warum kann ich eine filter object nur einmal seine Werten auslesen?
unten findet ihr eine klassische Beispiel eines Filters. aber sobal ich ausgeführt habe, meine For-Loop ist leer
Was passiert mit dem filter objekt?
<code>
letters = ['a', 'b', 'd', 'e', 'i', 'j', 'o']
def filterVowels(letter):
vowels = ['a', 'e', 'i', 'o', 'u']
if letter in vowels:
return True
else:
return False
filteredVowels = filter(filterVowels, letters)
list_filteredVowels = list(filteredVowels) # if I run this line, the for-loop is empty! If I run this line after the for-loop is the list empty!
print('The filtered vowels are:')
for vowel in filteredVowels:
print(vowel)
</code>