请参阅以下代码:
choices = ['pizza', 'pasta', 'salad', 'nachos']
print 'Your choices are:'
for index, item in enumerate(choices):
print index+1, item
输出:
Your choices are:
1 pizza
2 pasta
3 salad
4 nachos
None
在第三行中,表示两个参数。
用于索引,枚举项目(选项):
但for循环的语法是:
array=[...]
for element in array
这实际上是如何运作的? for循环是否包含多个参数?如果是,我们如何使用它们?
答案 0 :(得分:5)
Python允许您在分配时解包序列:
>>> foo = ('spam', 'ham')
>>> bar, baz = foo
>>> bar
'spam'
>>> baz
'ham'
同样可以在for
循环中完成:
list_of_tuples = [('foo', 'bar'), ('spam', 'ham')]
for value1, value2 in list_of_tuples:
print value1, value2
会打印
foo bar
spam ham
enumerate()
函数生成两个值的元组,索引和作为参数传入的序列中的值:
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
答案 1 :(得分:0)
实际上,它需要一个类型为tuple的参数,然后解压缩。
语法类似于以下内容:
a, b = b, a
这是编写两个变量“交换”的好方法。
然而,将其视为
(a,b) = (b,a)
然后你有一个“单元组”作业,结合元组解包。
答案 2 :(得分:0)
这是元组拆包。在一个赋值中,你可以在左侧放置一个变量元组,如果右边有完全相同数量的元素,它们会被赋值为:
a, b = (3, 4) # Now a is 3 and b is 4
您也可以在for循环中执行此操作
for a, b in [(3, 4), (5, 6)]:
print(a)
将打印3,然后打印5。
由于枚举产生(index,element)的元组,元素中的for循环起作用。