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

Kol*_*Boy 2 python return function list

如果我用打印功能这样做

def numberList(items):
     number = 1
     for item in items:
         print(number, item)
         number = number + 1

numberList(['red', 'orange', 'yellow', 'green'])
Run Code Online (Sandbox Code Playgroud)

我明白了

1 red
2 orange
3 yellow
4 green
Run Code Online (Sandbox Code Playgroud)

如果我然后将打印功能更改为返回功能我只得到这个:

(1, 'red')
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

我需要返回功能完全像打印功能一样工作,我需要更改代码或重写...感谢...请尽可能简单,易懂和直截了当.

agf*_*agf 8

return结束函数,同时yield创建一个一次吐出一个值的生成器:

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']))
Run Code Online (Sandbox Code Playgroud)

或者,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']))
Run Code Online (Sandbox Code Playgroud)

或者只是使用enumerate:

item_lines = '\n'.join(str(x) for x in enumerate(['red', 'orange', 'yellow', 'green'], 1)))
Run Code Online (Sandbox Code Playgroud)

在任何情况下都'\n'.join(str(x) for x in iterable)需要像列表一样的东西,并将每个项目转换为字符串,如同print,然后将每个字符串与换行符连接在一起,就像多个print语句一样.