Es ist ein Memo-Schreiben des Buches effektive Python von O'Reilly Japan. https://www.oreilly.co.jp/books/9784873117560/ P21~23
** Extrahiere den Namen mit den längsten Zeichen **
names = ['Cecilia', 'Lise', 'Marie' ]
letters = [len(n) for n in names]
longest_name = None
max_letters = 0
#Muster 1
for i in range(len(names)):
count = letters[i]
if count > max_letters:
longest_name = names[i]
max_letters = count
print(longest_name)
>>>
Cecilia
Es gibt kein syntaktisches Problem, aber es ist schwer zu erkennen, dass mit dem Index der Liste zweimal darauf zugegriffen wird. Wenn die Liste extrem lang ist, ist es nicht ökologisch, alle Inhalte zu erweitern, daher möchte ich sie mit einem Generator lösen.
for name, count in zip(names, letters): #Achten Sie auf die Größe des Reißverschlusselements
if count > max_letters:
longest_name = name
maxx_letters = count
print(longest_name)
>>>
Cecilia
Wenn Sie zip () verwenden, wird das Inhaltsverzeichnis vom Generator parallel zurückgegeben, sodass es sich um eine speicherfreundliche Spezifikation handelt. Außerdem ist es leichter zu sehen als alles andere.
Wenn jedoch die Elemente in der Zip nicht übereinstimmen. Beachten Sie, dass das Ganze endet, wenn der kürzere Iterator abgelaufen ist.
Recommended Posts