我潜入Python,我有一个关于每次迭代的问题。我是Python的新手,我有一些c#的经验。所以我想知道,在Python中是否有一些等效的函数用于迭代我的集合中的所有项目,例如。
pets = ['cat', 'dog', 'fish']
marks = [ 5, 4, 3, 2, 1]
或者像这样。
我潜入Python,我有一个关于每次迭代的问题。我是Python的新手,我有一些c#的经验。所以我想知道,在Python中是否有一些等效的函数用于迭代我的集合中的所有项目,例如。
pets = ['cat', 'dog', 'fish']
marks = [ 5, 4, 3, 2, 1]
或者像这样。
当前回答
是这样的:
for pet in pets :
print(pet)
事实上,Python只有foreach样式的for循环。
其他回答
不幸的是,foreach结构不是集合的固有结构,而是集合的外部结构。结果是双重的:
它不能被锁住 它需要两行惯用的python语句。
Python不直接支持在集合上使用true foreach。一个例子是
myList.foreach( a => print(a)).map( lambda x: x*2) # python can't do this..
但是python不支持。python中对这个和其他缺失函数特性的部分修复由各种第三方库提供,其中包括我帮助编写的一个库:参见https://pypi.org/project/infixpy/
当然。一个for循环。
for f in pets:
print f
对于dict,我们可以使用For循环遍历索引、键和值:
dictionary = {'a': 0, 'z': 25}
for index, (key, value) in enumerate(dictionary.items()):
## Code here ##
是这样的:
for pet in pets :
print(pet)
事实上,Python只有foreach样式的for循环。
观察这一点也很有趣
要遍历一个序列的下标,你可以组合range()和len(),如下所示:
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
print(i, a[i])
输出
0 Mary
1 had
2 a
3 little
4 lamb
编辑#1:替代方法:
当循环遍历一个序列时,位置索引和相应的值可以同时被检索 使用enumerate()函数的时间。
for i, v in enumerate(['tic', 'tac', 'toe']):
print(i, v)
输出
0 tic
1 tac
2 toe