本当に簡単な質問。私はPythonでこれをやろうとしています:
for x = str(y) in range(0,5):
y が整数を保持し、x がその整数の文字列表現を保持するようにします。私はそれをかなり簡単に2行にできることに気づきました-ショートカットが欲しいだけです。
また、私は正確に何を求めているのか興味があります。これはフォーラム全体で何億回も回答されていると確信していますが、それを見つけるために何を検索すればよいかわかりません。
本当に簡単な質問。私はPythonでこれをやろうとしています:
for x = str(y) in range(0,5):
y が整数を保持し、x がその整数の文字列表現を保持するようにします。私はそれをかなり簡単に2行にできることに気づきました-ショートカットが欲しいだけです。
また、私は正確に何を求めているのか興味があります。これはフォーラム全体で何億回も回答されていると確信していますが、それを見つけるために何を検索すればよいかわかりません。
簡単な方法は、次のmap()
関数を使用することです。
for y in map(str, range(0, 5)):
# ...
このmap()
関数は iterable を取り、各要素を callable である最初の引数に渡します。
あなたが探しています:
for x in (str(y) for y in range(0, 5)):
str
これには、リストをインスタンス化するオーバーヘッドはありません (ただし、5 つの要素ではほとんど問題になりません)。ただし、これに遭遇するたびに、通常str(y)
はループの本体内で使用します。
これを達成するためにリスト内包表記を使用できます。
str_list = ['%s'%(x) for x in range(0, 5)]
最も可能性が高いのは、リスト内包表記を検索することです。
[(str(y),y) for y in range(0,5)]
これにより、文字列と整数のタプルがリストとして提供され、他の場合と同じようにそのリストを反復処理します
実際にはコンパイルされないコードに依存しているため、質問は不明です。
for x,y in ((str(z), z) for z in range(0, 5)):
print x, y
上記の構成は、ループの反復ごとに と を および にそれぞれx
バインドしy
ますstr
。int
出力は次のとおりです。
0 0
1 1
2 2
3 3
4 4