更新时间:2023-02-26 18:35:01
return
结束函数,而yield
创建一个生成器,一次生成一个值:
return
ends the function, while yield
creates a generator that spits out one value at a time:
def numberList(items):
number = 1
for item in items:
yield str((number, item))
number = number + 1
item_lines = '\n'.join(numberList(['red', 'orange', 'yellow', 'green']))
或者,return
一个列表:
def numberList(items):
indexeditems = []
number = 1
for item in items:
indexeditems.append(str((number, item)))
number = number + 1
return indexeditems
item_lines = '\n'.join(numberList(['red', 'orange', 'yellow', 'green']))
或仅使用enumerate
:
item_lines = '\n'.join(str(x) for x in enumerate(['red', 'orange', 'yellow', 'green'], 1)))
在任何情况下,'\n'.join(str(x) for x in iterable)
都采用列表形式,然后像print
一样将每个项目转换为字符串,然后像多个print
语句一样将每个字符串与换行符连接起来.
In any case '\n'.join(str(x) for x in iterable)
takes something like a list and turns each item into a string, like print
does, and then joins each string together with a newline, like multiple print
statements do.