Python では、リスト内包表記を使用すると実装がいかに簡潔になるかを本当に楽しんでいます。私はこれを簡潔なリスト内包表記にするのが大好きです:
myList = [1, 5, 11, 20, 30, 35] #input data
bigNumbers = [x for x in myList if x > 10]
ただし、次のようなより冗長な実装によく遭遇します。
myList = [1, 5, 11, 20, 30, 35] #input data
bigNumbers = []
for i in xrange(0, len(myList)):
if myList[i] > 10:
bigNumbers.append(myList[i])
for loop
が 1 つのデータ構造 (例: ) だけを参照する場合、myList[]
通常、ループと同等の単純なリスト内包ステートメントが存在します。
これを念頭に置いて、冗長な Python ループを簡潔なリスト内包ステートメントに変換するリファクタリング ツールはありますか?
以前の StackOverflowの 質問では、ループをリスト内包表記に変換するためのアドバイスが求められました。しかし、ループをリスト内包表記に自動的に変換することに関する質問はまだ見つかっていません。
動機:「コードがクリーンであるとはどういう意味ですか?」という質問に答える方法はたくさんあります。個人的には、コードを簡潔にして無駄をなくすと、コードがすっきりして読みやすくなる傾向があることがわかりました。当然、「簡潔なコード」と「理解できないワンライナー」の間には境界線があります。それでも、簡潔なコードを書いて操作することに満足感を覚えることがよくあります。