Je suis sûr qu'il y a un moyen plus simple de faire ce qui est juste ne se produisent pas pour moi.
Je suis d'appeler un tas de méthodes qui renvoient une liste. La liste peut être vide. Si la liste est non vide, je veux retourner le premier élément; sinon, je veux retourner Aucun. Ce code fonctionne:
list = get_list()
if len(list) > 0: return list[0]
return None
Il me semble qu'il devrait y avoir une simple ligne idiome pour le faire, mais pour la vie de moi je ne peux pas penser à elle. Est-il?
Edit:
La raison que je suis à la recherche d'une ligne d'expression ici n'est pas que j'aime incroyablement laconique code, mais parce que je vais avoir à écrire beaucoup de code comme ceci:
x = get_first_list()
if x:
# do something with x[0]
# inevitably forget the [0] part, and have a bug to fix
y = get_second_list()
if y:
# do something with y[0]
# inevitably forget the [0] part AGAIN, and have another bug to fix
Ce que j'aimerais faire peut certainement être accompli avec une fonction (et probablement):
def first_item(list_or_none):
if list_or_none: return list_or_none[0]
x = first_item(get_first_list())
if x:
# do something with x
y = first_item(get_second_list())
if y:
# do something with y
J'ai posté la question, parce que je suis souvent surpris par ce que des expressions simples en Python peut faire, et j'ai pensé que l'écriture d'une fonction était une chose stupide à faire si il y avait une expression simple pourrait faire l'affaire. Mais, en voyant ces réponses, il semble comme une fonction est la solution la plus simple.