2024-06-16 11:40:38 发布
网友
我试图创建一个函数来降低所有输入的大小写。在
最后,我应该能够小写:
result = lowerList('Jen', 'Suzie') print(result)
到目前为止,我已经:
jen
所以现在我只能得到第一个输入。另外,我如何修改它来连续循环任何数量的输入而不修改函数?在
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
但更简单、更优雅的解决方案是使用列表理解:
另一个选择,如果你喜欢它,是使用一个发电机
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循环中创建一个新的列表,并在循环结束后返回。在
您的问题是,在只操作了一个元素之后,在for循环的第一次迭代中返回。您需要建立一个列表,然后返回整个列表。在
您可以手动执行此操作:
但更简单、更优雅的解决方案是使用列表理解:
^{pr2}$另一个选择,如果你喜欢它,是使用一个发电机
它的用法如下:
或者如果您需要一次完整的字符串列表:
你不会在循环中返回,它会在那里中止for循环。相反,在for循环中创建一个新的列表,并在循环结束后返回。在
相关问题 更多 >
编程相关推荐