for循环在python中有多个参数吗?

时间:2013-11-07 12:39:45

标签: python

请参阅以下代码:

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循环是否包含多个参数?如果是,我们如何使用它们?

3 个答案:

答案 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循环起作用。