0

请参阅以下代码:

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 接受两个参数。

对于索引,枚举中的项目(选择):

但是 for 循环的语法是:

array=[...]
for element in array

这实际上是如何工作的?for 循环是否接受多个参数?如果是,我们如何使用它们?

4

3 回答 3

5

Python lets you unpack sequences on assignment:

>>> foo = ('spam', 'ham')
>>> bar, baz = foo
>>> bar
'spam'
>>> baz
'ham'

The same can be done in a for loop:

list_of_tuples = [('foo', 'bar'), ('spam', 'ham')]
for value1, value2 in list_of_tuples:
    print value1, value2

would print

foo bar
spam ham

The enumerate() function produces tuples of two values, the index, and value from the sequence passed in as an argument:

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
于 2013-11-07T12:41:26.587 回答
0

实际上,它需要一个元组类型的参数,然后将其解包

语法类似于以下内容:

a, b = b, a

这是编写两个变量“交换”的好方法。

但是,将其视为

(a,b) = (b,a)

然后你有一个“单元组”分配,结合tuple unpacking

于 2013-11-07T12:41:57.847 回答
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。

由于 enumerate 产生 (index, element) 的元组,因此元素中的 for 循环有效。

于 2013-11-07T12:42:19.820 回答