创建for循环直到list.length

时间:2013-01-26 01:28:18

标签: python list for-loop

我现在正在阅读有关for循环的内容,我很好奇是否可以像在Java中那样在Python中执行for循环。

甚至可以做类似

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

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

由于

5 个答案:

答案 0 :(得分:42)

在Python中,您可以迭代list本身:

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()的内置函数,它返回项目和索引:

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

答案 1 :(得分:5)

是的,你可以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]

如果您想跳过第一个元素,可以slice the list [tutorial]

for element in l[1:]:
    # ...

  

你可以在这个for循环

中做另一个for循环吗?

当然可以。

答案 2 :(得分: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方式可以做到。

答案 3 :(得分: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)

答案 4 :(得分:0)

我尝试通过谷歌和字符串 Python for statement 搜索解决方案,就像那样简单。 first链接说明了一切。 (一个很棒的论坛,真的,但它的用法看起来有时像微软对其所有GUI产品的好处的理解:内部窗口,外面的白痴。)