Python 从列表中返回小写字符串,而不事先返回值

Python 从列表中返回小写字符串,而不事先返回值,python,Python,我需要获取一个字符串列表,并返回所有小写字符,而不返回值。所以计算机会做这个输入 strings = ['Right', 'SAID', 'Fred'] set_lowercase(strings) print(strings) 我想要答案 ['right', 'said', 'fred'] 这是我的代码,我可以在输入print之前给出正确的答案,但是如果我删除了return或print的最终语句。然后,当计算机开始打印时,它将只打印 ['Right', 'SAID', 'Fred']

我需要获取一个字符串列表,并返回所有小写字符,而不返回值。所以计算机会做这个输入

strings = ['Right', 'SAID', 'Fred']
set_lowercase(strings)
print(strings)
我想要答案

['right', 'said', 'fred']   
这是我的代码,我可以在输入print之前给出正确的答案,但是如果我删除了return或print的最终语句。然后,当计算机开始打印时,它将只打印

['Right', 'SAID', 'Fred']
我的代码:

def set_lowercase(strings):
    """takes list of strings and converts to lowercase"""
    result = []
    strings_str = ' '.join(strings)
    for i in strings_str:
        strings_low = strings_str.lower()
        new_strings = str.lower(strings_low)
        strings = new_strings.split()
        return strings
我知道这有点混乱,我有更干净的版本,我只是尝试我能想到的其他版本,但仍然收到相同的问题

编辑:我的稍微干净的版本

def set_lowercase(strings):
    """takes list of strings and converts to lowercase"""
    my_list = strings
    lower_string = str.lower(' ' .join(my_list))
    return lower_string.split()
尝试:


你可以试试这个功能

def set_lowercase(strings):
    return [string.lower() for string in strings]

不需要返回,
strings[:]
会将列表更新到位:

def set_lowercase(strings):
    strings[:] = [string.lower() for string in strings]

strings = ['Right', 'SAID', 'Fred']
set_lowercase(strings)
print(strings) 
这将显示:

['right', 'said', 'fred']

从最干净的版本开始,然后发布。如果你从这个开始,你很可能会理解这个解决方案。你的代码是非常错误的。你不需要一个循环,
strings\u str.lower().split()
完成你需要的所有工作。也许
strings=map(lambda x:x.lower(),strings)
作为你的整个函数已经足够了。你考虑过
def set\u lowercase(strings):strings[:]=list(map(str.lower,strings))
?行数越少意味着出错的地方就越少,正如您的代码多次以各种方式出错一样。请注意,只有在能够保证列表中的任何字符串都不包含任何空格字符的情况下,才能在空格上进行连接和拆分。
['right', 'said', 'fred']