1. TOP
  2. プログラム
  3. ソフト
  4. python
  5. Python-エッセンシャルー3

Python-エッセンシャルー3

ZIPを使う

names = ['Cecilia', 'Lise', 'marie']
letters = [len(n) for n in names]
longest_name = None
max_letters = 0

for i in range(len(names)):
  count = letters[i]
  if count > max_letters:
    longest_name = names[i]
    max_letters = count

これをenumerateに置き換えると
for i, name in enumerate(names):
  count = letters[i]
  if count > max_letters:
    longest_name = names[i]
    max_letters = count

これをzipに置き換えると
for name, count in zip(names, letters):
  if count > max_letters:
    longest_name = name
    max_letters = count

注意

○ 組み込み関数zipが複数のイテレータを並列に処理するのに使える
○ Python3では、zipはタプルを生成する遅延評価ジェネレータである
○ 異なる長さのイテレータを与ると、zipは何も言わずに出力を最短で止め

○ 組み込みモジュールitertoolのzip_longest関数が、複数のイテレータ
が異なるときに使える。