如何在字符串操作中使用*args?遇元组及转大写问题求解
解决方法
先明确*args的本质
*args本身就是把传入的多个位置参数打包成元组,所以你拿到元组是正常行为,核心是怎么基于这个元组实现字符串转大写。
场景1:传入的是字符串列表,批量转大写
不用纠结*args,直接接收列表参数,用列表推导式处理即可:
def convert_to_upper(strings): return [s.upper() for s in strings] my_strings = ["apple", "banana", "cherry"] print(convert_to_upper(my_strings)) # 输出 ['APPLE', 'BANANA', 'CHERRY']
场景2:接收不确定数量的单个字符串参数(用*args)
直接遍历*args这个元组,转大写后返回列表就行,任意数量的参数都能处理:
def convert_to_upper(*args): return [s.upper() for s in args] print(convert_to_upper("hello", "world")) # 输出 ['HELLO', 'WORLD'] print(convert_to_upper("a", "b", "c", "d")) # 输出 ['A', 'B', 'C', 'D']
关于元组解包的问题
如果要把*args的元组内容作为参数传给其他函数,直接用*解包即可:
def print_strings(*args): print(*args) print_strings("hello", "world") # 直接输出 hello world
要是想把元组转为列表,直接用list(args)就能实现,比如my_list = list(args)。
内容的提问来源于stack exchange,提问作者Arinze
相关产品推荐
相关产品推荐

