Supposons une liste de tuples, avec le contenu de longueur arbitraire:Bref aperçu du contenu de la liste des tuples
quotes = [('Shakespeare', 'Piccard', 'Allen'),
("To be, or not to be", "Earl Grey, 60 degrees", "I feel that life is divided into the horrible and the miserable. That's the two categories. The horrible are like, I don't know, terminal cases, you know, and blind people, crippled. I don't know how they get through life. It's amazing to me. And the miserable is everyone else. So you should be thankful that you're miserable, because that's very lucky, to be miserable."),
('beer', 'tea', 'vodka')
]
Pour des fins de débogage, je voudrais sortir le contenu de la liste:
print str(quotes)
Cependant, je voudrais seulement les N premiers caractères de n'importe quelle valeur de tuple, je n'ai pas besoin du contenu entier s'il est long comme dans la troisième citation. Je sais que je pourrais écrire une fonction pour itérer sur la liste et ensuite pour itérer sur chaque tuple et découper les N premiers caractères, mais étant Python, je soupçonne qu'il y a un chemin plus simple, plus court, plus pythonique. Y a-t-il?
Je ne cherche pas de solution XY pour l'exemple actuel, c'est juste un exemple pour illustrer un point.
Vous cherchez une compréhension de liste avec une jointure, alors? – Crisfole
Qu'est-ce qui vous fait penser qu'une telle fonction n'est pas "Pythonic"? ["La lisibilité compte."] (Http://www.python.org/dev/peps/pep-0020/) – Johnsyweb
Merci, Johnsyweb. Je pensais réellement à citer "Simple est mieux que complexe". comme la fonction serait quatre ou cinq niveaux de retrait vers le bas. De mon expérience limitée, en Python, s'il y a plus de trois niveaux de retrait, alors Guido a déjà trouvé un meilleur moyen. – dotancohen