python小写函数forloop

2024-06-16 11:40:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个函数来降低所有输入的大小写。在

最后,我应该能够小写:

result = lowerList('Jen', 'Suzie')
print(result)

到目前为止,我已经:

^{pr2}$

jen

所以现在我只能得到第一个输入。另外,我如何修改它来连续循环任何数量的输入而不修改函数?在


Tags: 函数数量resultprint小写jenpr2suzie
3条回答
def to_lower(*args):                      
    return [arg.lower() for arg in args]  

>>> to_lower('SPAM', 'Eggs')
['spam', 'eggs']           

您的问题是,在只操作了一个元素之后,在for循环的第一次迭代中返回。您需要建立一个列表,然后返回整个列表。在

您可以手动执行此操作:

def lower_list(*args):
    strings = []
    for string in args:
        strings.append(string.lower())
    return strings

但更简单、更优雅的解决方案是使用列表理解:

^{pr2}$

另一个选择,如果你喜欢它,是使用一个发电机

def lower_list(*args):
    for string in args:
        yield string.lower()

它的用法如下:

>>> str_gen = lower_list('Hello', 'WORld', 'Name', 'BUCKs')
>>> next(str_gen)
'hello'
>>> next(str_gen)
'world'
>>> next(str_gen)
'name'
>>> # etc...

或者如果您需要一次完整的字符串列表:

>>> list(lower_list('Hello', 'WORld', 'Name', 'BUCKs'))
['hello', 'world', 'name', 'bucks']

你不会在循环中返回,它会在那里中止for循环。相反,在for循环中创建一个新的列表,并在循环结束后返回。在

相关问题 更多 >