有几种方法可以遍历列表。
最常见的是每个循环
for fruit in orderList:
print fruit
更有效的变体是使用生成器,还值得注意的是生成器是可迭代的序列。
def generator(fruits):
for fruit in fruits:
yield fruit
generate = generator(orderList)
firstFruit = generate.next()
// Doing complex calculations before continuing the iteration
answer = 21 + 21
secondFruit = generate.next()
更优雅的方法是使用高阶函数“map”。Map 也可以返回一个值。如果您想将每种水果的价格或数量提高 5%,您只需创建一个简单的函数。
def display(fruit):
print fruit // map takes in a function as an argument and applies it to each element of the sequence.
map( display, orderList )
// You could also use a generator
map( display, generate )
我能想到的最后一种方法是使用压缩。压缩是一种内置的迭代形式,现在可以在大多数标准库数据结构中使用。如果您想使用序列创建新列表,这很有用。我很懒,所以我只是重用 display 来演示语法。
[ display(fruit) for fruit in orderList ]
[ display(fruit) for fruit in generate ]