2
votes

trouver la première chaîne commençant par voyelle dans LIST Python

Je suis tout nouveau en python -

Je dois créer une fonction appelée 'first__vowel' . ACCEPTER une liste de chaînes en entrée et RETURN la première chaîne commençant par une voyelle minuscule ("a", "e", "i", "o" ou "u") . si aucune chaîne ne commence par une voyelle, RETOURNEZ la chaîne vide ("") .

Pouvez-vous aider à créer cette fonction.

Merci


0 commentaires

4 Réponses :


0
votes

Vous avez besoin de:

import re

def first_vow(lst):
    pat = re.compile(r'^[aeiou][a-zA-Z]*')
    for i in lst:
        match = re.match(pat, lst)
        if match:
            return i
    return ""

k = ['sad','Aad','mad','','asd','eas']
first_vow(k)

Ou vous pouvez également utiliser regex

def first_vowel(lst):
    # iterate over list using for loop
    for i in lst:
        # check if first letter is vowel
        if i and i[0] in ['a','e','i','o','u']:
            return i 
    return ""

k = ['sad','dad','mad','asd','eas']
print(first_vowel(k))


0 commentaires

2
votes

Vérifiez ceci:

first_vowel(["Drere", "fdff", "", "aBD", "eDFF"])
'aBD'

Test:

vowels = ["a", "e", "i", "o", "u"]

def first_vowel(ss):
    for s in ss:
        if s and s[0] in vowels:
            return s
    return ""


6 commentaires

cela fonctionne. Je vous remercie. Que signifie s [0] avec "et" dans la syntaxe?


@FHamad if s signifie si la chaîne n'est pas vide; et simplement ET; s [0] est le premier caractère de la chaîne. Je vous recommande de suivre un cours python simple, par exemple sur tutorialspoint.com/python/python_strings.htm


@FHamad Si cela vous aide, pensez à marquer cette réponse comme acceptée (si cela ne vous dérange pas). Merci!


j'ai utilisé cette réponse. y a-t-il un moyen de marquer accepté? s'il vous plaît laissez-moi savoir comment, nouveau sur ce site.


@FHamad Il y a une marque V juste sous 3 à côté de ma réponse. Veuillez cliquer sur la marque V et elle deviendra verte comme ceci i.stack.imgur.com/LkiIZ .png


Le vôtre est bon aussi - Compte tenu de mon niveau d'expertise (à peine nul), j'ai opté pour l'autre. Merci d'avoir partagé le vôtre. Cela m'aide vraiment à apprendre.



0
votes

Vous pouvez toujours utiliser la fonction str.startswith () :

def first_vowel(lst):
    for elem in lst:
        if elem.startswith(('a','e','i','o','u')):
            return elem
    return ''
k = ['', 'b','sad','dad','mad','asd','eas']
print(first_vowel(k))


0 commentaires

0
votes
l1 = ['hi', 'there', 'its', 'an' , 'answer', '']

def first_vowel(var):
    for i in var:
        if i.startswith(('a', 'e', 'i', 'o', 'u')): return i


first_vowel(l1) # output-> 'its'

0 commentaires