J'ai un tableau et une entrée, si j'entre quelque chose que je veux utiliser .startswith()
avec mon tableau, par exemple si j'ai ceci:
Array = ['foo','bar']
Et si j'entre "fo"
, je veux qu'il corresponde à "foo"
, puis renvoie l'index, dans ce cas 0
. Comment pourrais-je faire ça?
3 réponses
Voici une solution. J'ai parcouru la liste et pour chaque élément vérifié s'ils commencent par la chaîne 'fo'
(ou ce que vous voulez vérifier). S'il commence par cette chaîne, il affiche l'index de cet élément. J'espère que ça aide!
Array = ['foo', 'bar']
for item in Array:
if item.startswith('fo'):
print(Array.index(item))
La réponse de MaryPython est généralement correcte. Alternativement, dans O (n) au lieu de O (n ^ 2), vous pouvez utiliser
for index, item in enumerate(my_list):
if item.startswith('fo'):
print(index)
J'ai utilisé enumerate pour parcourir l'index avec l'élément
Notez que l'implémentation de Marky échoue sur ce tableau
['fo','fo','fobar','fobar','hi']
Car .index
renvoie toujours la première instance d'une occurrence répétée (mais sinon sa solution est fine et intuitive)
#!/usr/bin/python
# -*- coding: ascii -*-
Data = ['bleem', 'flargh', 'foo', 'bar' 'beep']
def array_startswith(search, array):
"""Search an iterable object in order to find the index of the first
.startswith(search) match of the items."""
for index, item in enumerate(array):
if item.startswith(search):
return(index)
raise(KeyError)
## Give some sort of error. You probably want to raise an error rather
## than returning None, as this might cause a logic error in the
## later program. I think KeyError is correct, based on the question.
## See Effective Python by Brett Slatkin, Page 29...
if __name__ == '__main__':
lookfor='fo'
try:
result=array_startswith(lookfor, Data)
except KeyError as e:
print("'{0}' not found in Data, Sorry...".format(lookfor))
else:
print("Index where '{0}' is found is: {1}. Found:{2}".format(lookfor,
result, Data[result]))
finally:
print("Try/Except/Else/Finally Cleanup happens here...")
print("Program done.")
Questions connexes
Questions liées
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.