且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Python:函数中的返回列表结果问题

更新时间: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.