python - 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 字符串下编写代码,但我不能修改其他任何内容,例如删除这三行测试代码)。因为他们的测试声明了字符串并在我的代码下调用了函数,所以它似乎只是覆盖了我写的任何东西!我觉得我快疯了,因为这是一个初学者问题,我无法通过测试。我做错了什么?谢谢!
解决方案
您只需要做一个小改动:使用切片分配修改列表,而不是创建一个新列表。然后你不需要返回它(事实上,Python 约定是不这样做的)。
def lowercase(strings):
"""takes a list of strings and replaces each with lowercase version"""
strings[:] = (x.lower() for x in strings)
推荐阅读
- angular - 从 Angular 9 升级到 11 会阻止 router.navigate 加载新组件
- python - Scrapy 在文件中保存 200 个带有空项目的状态 url
- go - 如何在golang中制作struct类型的队列
- javascript - 计算对象列表的函数
- spring - 生菜反应连接未建立
- javascript - React 中有没有办法更改道具类型以避免 TypeErrors?
- css - 检查 SASS 函数参数是否是包含一个或多个项目的列表
- c# - 异步任务有时不会执行所有代码行
- javascript - 更改 Map 中的值也会在另一个 Map 上更改
- arrays - C语言前n个元素的二维数组总和