あなたはlist-comprehension
からfor loop
定期的な退屈な古いものを抽出するために意味ですか?
list1=[string1[i:i+int1] for i in range(0, len(string1), int1)]
次のようになります。
list1 = list()
for i in range(0, len(string1), int1):
list1.append(string1[i:i+int1])
あなたがあなたのデータを反復しながら、例外処理、ロギング、またはより複雑な機能や動作を追加したい場合、これは有用であろう。例えば
:
list1 = list()
for i in range(0, len(string1), int1):
log.info('in loop: i={}'.format(i))
try:
data = string1[i:i+int1]
except:
log.error('oh no!')
# maybe do something complex here to get some data anyway?
data = complex_function(i)
log.debug('appending to list: data={}'.format(data))
list1.append(data)
しかし、一般的リスト・理解を話すことはそれを書くために、完全に合法的な方法です。
[リストの補完](https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions)をお読みください。 – Lafexlos
先生のアドバイスは過度の単純化です。 for _statement_があるときに新しい行を始めるべきですが、式の中の 'for'はfor文の一部ではありません。それはリストの理解の一部です。 – Kevin
あなたの教師が、明示的に 'for'を優先して[list comprehensions](https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions)を忘れるべきではないということはほとんど確信していますリストを細かく構築するループ。彼らがした場合、彼らは実際にPythonを教えていません。 – ShadowRanger