Python での美しいループ
13397 ワード
この記事は、「美しく慣用的な Python コードを書く」シリーズの最初の記事です. Python を使用したループの慣用的な方法について説明します.
Obs .: コードの品質/設計は主観的なものです.異議を唱えたり、同じことを行うためのさまざまなアプローチや代替方法について自由にコメントしてください.
Loop over a numeric interval Loop over a collection Loop over a collection and indices Loop over a collection in reverse order Loop over two collection at the same time Loop over a list in orderly fashion
してはいけないこと:
行う:
してはいけないこと:
行う:
してはいけないこと:
行う:
してはいけないこと:
行う:
してはいけないこと:
行う:
別の方法は、巨大なリストに
行う:
ループの前にリストをソートしたくない場合は、上記でこれを行うことができます.
行う:
PEP8
Obs .: コードの品質/設計は主観的なものです.異議を唱えたり、同じことを行うためのさまざまなアプローチや代替方法について自由にコメントしてください.
概要
数値間隔でループする
してはいけないこと:
for i in [1, 2, 3, 4, 5]:
print(i ** 2)
行う:
for i in range(6):
print(i ** 2)
コレクションをループする
してはいけないこと:
colors = ["red", "green", "blue", "yellow"]
for i in range(len(collection)):
print(colors[i])
行う:
colors = ["red", "green", "blue", "yellow"]
for color in colors:
print(color)
コレクションとインデックスをループする
してはいけないこと:
colors = ["red", "green", "blue", "yellow"]
for i in range(len(collection)):
print(i, "--->", colors[i])
行う:
colors = ["red", "green", "blue", "yellow"]
for index, color in enumerate(colors):
print(index, "--->", color)
コレクションを逆順にループする
してはいけないこと:
colors = ["red", "green", "blue", "yellow"]
for i in range(len(colors) -1, -1, -1):
print(colors[i])
行う:
colors = ["red", "green", "blue", "yellow"]
for color in reversed(colors):
print(color)
2 つのコレクションを同時にループする
してはいけないこと:
colors = ["red", "green", "blue", "yellow"]
names = ["Hicaro", "Julia", "Fred", "Jake", "Mike"]
n = min(len(colors), len(names))
for i in range(n):
print(colors[i], names[i])
行う:
colors = ["red", "green", "blue", "yellow"]
names = ["Hicaro", "Julia", "Fred", "Jake", "Mike"]
for color, name in zip(colors, names):
print(color, name)
別の方法は、巨大なリストに
izip()
を使用することです (パフォーマンスのトレードオフに関して適切なオプション).colors = ["red", "green", "blue", "yellow"]
names = ["Hicaro", "Julia", "Fred", "Jake", "Mike"]
for color, name in izip(colors, names):
print(color, name)
リストを順番にループする
行う:
names = ["Hicaro", "Julia", "Fred", "Jake", "Mike"]
for name in sorted(names):
print(name)
ループの前にリストをソートしたくない場合は、上記でこれを行うことができます.
辞書をループする
行う:
info = {"Name": "Hicaro", "Age": 18, "Tel": 2319321931-1}
for key, value in info.items():
print(f"{key} --> {value}")
参考文献
PEP8
Reference
この問題について(Python での美しいループ), 我々は、より多くの情報をここで見つけました https://dev.to/hicarod/beautiful-looping-in-python-2ok8テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol