私は今forループについて読んでいますが、JavaのようにPythonでforループを実行できるかどうか知りたいです。
次のようなことをすることさえ可能ですか?
for (int i = 1; i < list.length; i++)
このforループ内で別のforループを実行できますか?
ありがとう
list
Python では、それ自体を反復処理できます。
for item in my_list:
#do something with item
または使用できるインデックスを使用するにはxrange()
:
for i in xrange(1,len(my_list)): #as indexes start at zero so you
#may have to use xrange(len(my_list))
#do something here my_list[i]
enumerate()
item と index の両方を返すという別の組み込み関数があります。
for index,item in enumerate(my_list):
# do something here
例:
In [117]: my_lis=list('foobar')
In [118]: my_lis
Out[118]: ['f', 'o', 'o', 'b', 'a', 'r']
In [119]: for item in my_lis:
print item
.....:
f
o
o
b
a
r
In [120]: for i in xrange(len(my_lis)):
print my_lis[i]
.....:
f
o
o
b
a
r
In [122]: for index,item in enumerate(my_lis):
print index,'-->',item
.....:
0 --> f
1 --> o
2 --> o
3 --> b
4 --> a
5 --> r
はい、できますrange
[docs] :
for i in range(1, len(l)):
# i is an integer, you can access the list element with l[i]
ただし、とにかくリスト要素にアクセスしている場合は、それらを直接反復処理する方が自然です。
for element in l:
# element refers to the element in the list, i.e. it is the same as l[i]
最初の要素をスキップしたい場合は、リストをスライスできます[チュートリアル] :
for element in l[1:]:
# ...
この for ループ内で別の for ループを実行できますか
できますよ。
答えは、何のためにループが必要かによって異なります。
もちろん、Java に似たループを作成できます。
for i in xrange(len(my_list)):
しかし、私は実際にこのようなループを使用したことはありません。
通常、反復したいので
for obj in my_list
またはインデックスも必要な場合
for index, obj in enumerate(my_list)
または、リストから別のコレクションを作成したい
map(some_func, my_list)
[somefunc[x] for x in my_list]
itertools
また、反復関連のケースのほとんどをカバーするモジュールもあります
、 、 、 、 、 、 、 、 、 、 、 any
、max
、min
、all
、enumerate
私は言います-PythonでJavaのようなコードを書こうとしないでください。それを行うためのpythonicな方法が常にあります。
Pythonループについては、http: //en.wikibooks.org/wiki/Python_Programming/Loopsで学ぶことができます 。
Pythonにはループの開始と終了に{と}がないことを知っておく必要があります。代わりに、行の最初に入力するタブ文字に依存します。つまり、行のインデントです。
したがって、ダブルタブ(インデント)を使用してループ内でループを実行できます
ダブルループの例は次のようになります。
onetoten = range(1,11)
tentotwenty = range(10,21)
for count in onetoten:
for count2 in tentotwenty
print(count2)