试图从列表中一次返回一个项目

2022-07-06 12:03:22 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我尝试制作一个应用程序,用不同的名字打印同一个句子,所以使用一个函数我想返回名字(在另一个函数中使用它们),它总是只返回名字和结尾。我尝试用很多方法解决这个问题,但找不到任何人能帮助的解决方案

def next_person(list):
    i = 0
    while i < len(list):
        if i < len(list):
            return list[i]
        i += 1

names = ("nike", "dan", "someone", "elzein", "joe")

print(next_person(names))

Tags: 方法函数应用程序lenifnamesdef结尾解决方案名字list句子nextpersonwhile
3条回答
网友
1楼 ·

我强烈建议使用for循环:

def next_person(list):
        for a in list:
                print("This is my sentence : {}".format(a))

names = ["nike", "dan", "someone", "elzein", "joe"]

next_person(names)

Output :
This is my sentence : nike
This is my sentence : dan
This is my sentence : someone
This is my sentence : elzein
This is my sentence : joe
网友
2楼 ·

当然有更简单的方法,但是如果您需要一次返回一个项目generator就是您所需要的

您可以使用map打印值和调用列表以evaluate

def next_person(list):
    i = 0
    while i < len(list):
        if i < len(list):
             yield list[i]
        i += 1

names = ("nike", "dan", "someone", "elzein", "joe")

list(map(print, next_person(names)))
网友
3楼 ·

你根本不需要这个函数list支持python迭代器协议。没有必要把它包装成试图做同样事情的东西