Python-带逗号的函数参数

Python-带逗号的函数参数,python,arrays,function,Python,Arrays,Function,我想在函数中有一个参数,用多个字符串填充数组,这样 def Test(colors): colorarray = [colors] 我可以把它填满 Test(red,blue) 但是我总是得到接受2个位置参数,但3个位置参数被给出了错误,或者单个字符串未被接受(例如,TurtleColor(Color[i])告诉我“坏颜色字符串:”红色“,”蓝色“) 我知道我可以将字符串作为单独的参数传递,但我希望避免使用那么多不同的参数。您需要将输入参数作为列表来读取 def Test(*

我想在函数中有一个参数,用多个字符串填充数组,这样

def Test(colors):
     colorarray = [colors]
我可以把它填满

Test(red,blue)
但是我总是得到
接受2个位置参数,但3个位置参数被给出了
错误,或者单个字符串未被接受(例如,TurtleColor(Color[i])告诉我
“坏颜色字符串:”红色“,”蓝色“


我知道我可以将字符串作为单独的参数传递,但我希望避免使用那么多不同的参数。

您需要将输入参数作为列表来读取

   def Test(*colors):
         colorarray = [*colors]
         print(colorarray)

    Test('red','blue')

您需要以列表的形式读取输入参数

   def Test(*colors):
         colorarray = [*colors]
         print(colorarray)

    Test('red','blue')

你说
TurtleColor(Color[i])
抛出一个
坏颜色字符串:“红色”、“蓝色”
错误,但是
TurtleColor
Color
i
是什么?看看你是否需要将
*args
元组转换成一个列表。你说
TurtleColor(Color[i])
抛出一个
坏颜色字符串:“红色”、“蓝色”“
错误,但什么是
TurtleColor
Color
i
?查看是否需要将
*args
元组转换为列表。这应该可以工作,如果有第二个参数,我该怎么办?”?e、 g.def Test(*颜色,大小):输入Test('red','blue',100)不起作用-告诉我它只需要一个关键字参数:'size'编辑:Test('red','blue',size=100)起作用。但令人不满意的是,我想知道我是否可以用一些syntax@FlyingThunder:如果大小始终存在,请更改顺序<代码>测试(大小,*颜色)
所以列表必须排在最后,这不应该是一个问题-我希望我不会遇到这样的情况,即我必须输入多个列表。感谢您的快速建议
list(colors)
将比
[*colors]
更具可读性和向后兼容性。Aran是对的,另一种选择是将颜色作为单个列表参数输入,以保持代码更干净(特别是当您有多个参数时)。但是,我建议不要使用列表(它是可变的),而是使用元组:
deftest(colors,size)
,并称之为
Test(('red','blue'),100)
,如果我有第二个参数该怎么办?e、 g.def Test(*颜色,大小):输入Test('red','blue',100)不起作用-告诉我它只需要一个关键字参数:'size'编辑:Test('red','blue',size=100)起作用。但令人不满意的是,我想知道我是否可以用一些syntax@FlyingThunder:如果大小始终存在,请更改顺序<代码>测试(大小,*颜色)
所以列表必须排在最后,这不应该是一个问题-我希望我不会遇到这样的情况,即我必须输入多个列表。感谢您的快速建议
list(colors)
将比
[*colors]
更具可读性和向后兼容性。Aran是对的,另一种选择是将颜色作为单个列表参数输入,以保持代码更干净(特别是当您有多个参数时)。但是,我建议使用元组而不是列表(它是可变的):
deftest(colors,size)
,并将其称为
Test(('red','blue'),100)