返回函数定义中的索引和项?

时间:2017-03-15 16:38:53

标签: python python-2.7 python-3.x

我想在函数定义中获得以下结果。当我使用for循环时,它可以很好地工作,但是当我使用def时,它只会给我第一个项目。

text= "I am not a student, but I like to be "
text1= text.split()

for index,item in enumerate(text1):
    print (index, item)

输出:

0 I
1 am
2 not
3 a
4 student,
5 but
6 I
7 like
8 to
9 be

但是,这在函数def中不起作用。你能帮我把结果搞到一个吗?

text= "I am not a student,but I like to be "
text1= text.split()

def words(text):
    for index,item in enumerate(text1):
        return index, item

words(text1)

输出:

(0, 'I')

2 个答案:

答案 0 :(得分:2)

return退出函数并中断函数中的操作,永远不会完成。

如果你没有返回第一个值,但是像第一个例子中那样打印所有值,你会看到相同的输出。

答案 1 :(得分:0)

问题是函数中的returnfor循环的第一次迭代期间结束了它的执行。因此,要执行与非功能版本相同的操作,您需要print()内部内的每个值,如下所示:

from __future__ import print_function

def words(text):
    for index,item in enumerate(text1):
        print(index, item)

text1 = "I am not a student, but I like to be ".split()

words(text1)

输出:

0 I
1 am
2 not
3 a
4 student,
5 but
6 I
7 like
8 to
9 be