25

私は今forループについて読んでいますが、JavaのようにPythonでforループを実行できるかどうか知りたいです。

次のようなことをすることさえ可能ですか?

for (int i = 1; i < list.length; i++)

このforループ内で別のforループを実行できますか?

ありがとう

4

4 に答える 4

54

listPython では、それ自体を反復処理できます。

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
于 2013-01-26T01:31:31.010 に答える
8

はい、できます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 ループを実行できますか

できますよ。

于 2013-01-26T01:31:18.903 に答える
2

答えは、何のためにループが必要かによって異なります。

もちろん、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また、反復関連のケースのほとんどをカバーするモジュールもあります

、 、 、 、 、 、 、 、 、 、 、 anymaxminallenumerate

私は言います-PythonでJavaのようなコードを書こうとしないでください。それを行うためのpythonicな方法が常にあります。

于 2013-01-26T01:51:19.897 に答える
1

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)
于 2013-01-26T01:30:41.523 に答える