يجب أن يطبع هذا الرمز حروف العلة الفريدة في القائمة ، لكن لماذا تطبع حروف العلة المتكررة؟

-2
v = ['a','e','i','o','u']
word ="Milliwaysaaa"
found = []
for i in word:
    if i in v:
        if i not in found:
            print(i) 

يجب أن يطبع هذا الأحرف الصوتية الفريدة فقط ، ولكنه يطبعها جميعًا. لماذا ا؟

4 الاجابة

2
افضل جواب

يمكنك استخدام set() العمليات ، وهذا سيطبع العناصر المشتركة في حروف العلة والكلمة:

vowels = ['a','e','i','o','u']
word ="Milliwaysaaa"

print(set(vowels) & set(word))

مطبوعات:

{'i', 'a'}
:مؤلف
0

مشكلتك هي أنك لا تضيف أي شيء إلى found قائمة في أي وقت ، مما يعني أنها تظل دائمًا فارغة.

حاول الإضافة found.append(i) بعد بيان الطباعة الخاص بك.

إليك أيضًا طريقة أكثر إيجازًا لتحقيق ما تريده:

v = ['a', 'e', 'i', 'o', 'u']
word = "Milliwaysaaa"

found = set(filter(lambda i: i in v, word))

print(found)

انتاج:

{'a', 'i'}
:مؤلف
0
from collections import Counter
v = ['a','e','i','o','u']
word ="Milliwaysaaa"

d=dict(Counter(word))
found=[key for key in d.keys() if key in v]

#['a', 'i']
:مؤلف
0

تحتاج إلى التحديث found عندما تصادف حرف علة جديد. أضف هذا الخط:

v = ['a','e','i','o','u']
word ="Milliwaysaaa"
found = []
for i in word:
    if i in v:
        if i not in found:
            print(i)
            found.append(i)
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام