小索引问题python

时间:2017-11-04 22:00:48

标签: python

该程序应该返回列表的前三个字母,例如['Monday', 'Tuesday', 'Wednesday', 'Thursday']将返回:

Mon  
Tue  
Wed  
Thu  

这是我的代码:

def three(lst):  
    for i in lst:  
        return lst[:3]  

我无法让这个工作,我在这里找到了一个类似的问题,答案不起作用,我的教科书什么也没给我。谢谢!

3 个答案:

答案 0 :(得分:2)

return立即退出该功能。您必须在新列表中收集字母:

def three(lst):
    result = []
    for item in lst:
        result.append(item[:3])
    return result

答案 1 :(得分:1)

您需要打印i的前3个字母,而不是lst的元素

def three(lst):  
    for i in lst:  
        print(i[:3]) 

答案 2 :(得分:1)

在python中,我们使用list comprehensions来完成这些任务。

lst = ['Monday', 'Tuesday', 'Wednesday', 'Thursday']

def three(lst):  
    return [i[:3] for i in lst]

three(lst)

或者返回生成器(生成器基本上是一个只能使用一次的列表):

def three(lst):  
    for item in lst:
        yield item[:3]

list(three(lst))

返回:

['Mon', 'Tue', 'Wed', 'Thu']

然而如果您的目标只是打印,那么我们可以简单地执行此操作:

print('\n'.join(i[:3] for i in lst))

这使用生成器从列表中使用行中断连接元素,它打印:

Mon
Tue
Wed
Thu