You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将排序后的列表元素作为函数可变参数传入?

如何将排序后的列表元素作为函数可变参数传入?

嘿,我来帮你捋清楚这个问题!首先提个小细节:你写的函数名funciton拼写错啦,应该是function,不过这不是核心问题~

你想要把列表里的元素一个个作为参数传给可变参数函数,但之前的写法走偏了。先看看你原来的代码问题在哪:

funciton('{}'.format(*lis) * len(lis))

这个写法里,'{}'.format(*lis)会因为占位符数量和列表元素数不匹配直接报错(你这里列表有3个元素,但只有1个{});就算占位符写对了,比如改成'{}{}{}'.format(*lis),得到的也只是一个拼接后的字符串,再乘以len(lis)就是把这个字符串重复3次,最后传给函数的只有这一个长字符串,而不是三个单独的元素,这肯定不是你想要的效果。

那正确的做法是什么呢?其实超简单!Python里的*运算符在函数调用时,能直接把列表(或其他可迭代对象)的元素拆成单独的位置参数,正好匹配*names这种可变参数定义。如果需要先排序,那就先对列表排序再传:

# 修正函数名拼写
def function(*names):
    for name in names:
        print(name)

lis = ['a', 'bb', 'srg']

# 先对列表排序,得到排序后的新列表
sorted_list = sorted(lis)
# 用*解包列表元素,作为多个参数传入函数
function(*sorted_list)

运行这段代码,就会依次打印出:

a
bb
srg

如果不需要排序,直接传原列表的话,就写function(*lis)就行,顺序就是原列表的顺序~

备注:内容来源于stack exchange,提问作者BadProgramming

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 12:09:33