我现在正在阅读 for 循环,我很好奇是否可以像在 Java 中一样在 Python 中执行 for 循环。
是否有可能做类似的事情
for (int i = 1; i < list.length; i++)
你能在这个 for 循环中再做一个 for 循环吗?
谢谢
在 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
是的,您可以使用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]
如果要跳过第一个元素,可以对列表进行切片[tutorial]:
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)