首页 > 解决方案 > Python小写列表理解在似乎正确时未能通过测试?

问题描述

我正在做一门涉及完成大量在线问题的 Python 课程,而且任务似乎非常简单(获取字符串列表并将其转换为小写)。但是,无论我尝试什么,我的代码都会失败。我试过列表理解和循环,但无济于事 - 它只是说测试失败。下面是代码:

def lowercase(strings):
    """takes a list strings and replaces string with lowercase words"""
    strings = [x.lower() for x in strings]
    return strings   

strings = ['LOWER', 'CASE', 'SENTENCE']
lowercase(strings)
print(strings) 

我提供的部分是:

def lowercase(strings):
    """takes a list strings and replaces string with lowercase words"""


strings = ['LOWER', 'CASE', 'SENTENCE']
lowercase(strings)
print(strings) 

所以我只能在函数中编写将“字符串”更改为小写的代码(我可以在 doc 字符串下编写代码,但我不能修改其他任何内容,例如删除这三行测试代码)。因为他们的测试声明了字符串并在我的代码下调用了函数,所以它似乎只是覆盖了我写的任何东西!我觉得我快疯了,因为这是一个初学者问题,我无法通过测试。我做错了什么?谢谢!

标签: pythonlistlist-comprehensionlowercase

解决方案


您只需要做一个小改动:使用切片分配修改列表,而不是创建一个新列表。然后你不需要返回它(事实上,Python 约定是不这样做的)。

def lowercase(strings):
    """takes a list of strings and replaces each with lowercase version"""
    strings[:] = (x.lower() for x in strings)

推荐阅读