创建for循环直到list.length

Aga*_*ape 23 python for-loop list

我现在正在阅读for循环,我很好奇是否可以像在Java中一样在Python中执行for循环.

甚至可以做类似的事情

for (int i = 1; i < list.length; i++)
Run Code Online (Sandbox Code Playgroud)

你可以在这个for循环中做另一个for循环吗?

谢谢

Ash*_*ary 46

在Python中,您可以迭代list自己:

for item in my_list:
   #do something with item
Run Code Online (Sandbox Code Playgroud)

或使用您可以使用的指数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]
Run Code Online (Sandbox Code Playgroud)

还有一个名为的内置函数enumerate(),它返回item和index:

for index,item in enumerate(my_list):
    # do something here
Run Code Online (Sandbox Code Playgroud)

例子:

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
Run Code Online (Sandbox Code Playgroud)

  • xrange() 在 Python 3 中不再可用。现在可以使用 range() 完成相同的操作,但与以前略有不同。对于范围内的 i(0,len(my_list)): (3认同)

Fel*_*ing 7

是的你可以,range [docs]:

for i in range(1, len(l)):
    # i is an integer, you can access the list element with l[i]
Run Code Online (Sandbox Code Playgroud)

但是如果你正在访问列表元素,那么直接迭代它们会更自然:

for element in l:
   # element refers to the element in the list, i.e. it is the same as l[i]
Run Code Online (Sandbox Code Playgroud)

如果要跳过第一个元素,可以对列表进行切片[tutorial]:

for element in l[1:]:
    # ...
Run Code Online (Sandbox Code Playgroud)

你可以在这个for循环中做另一个for循环吗?

你当然可以.