Python 如何通过输入定义函数中的变量?

Python 如何通过输入定义函数中的变量?,python,function,input,Python,Function,Input,如果有人能帮我解决这个问题,我会非常高兴,因为我有点困在这里了。我试图“触发”这个函数,通过按名称调用它,然后添加变量,通过写入数字,数字之间用空格分隔 #I tried: #(Input: Test1 4 5) Input = input().split() def Test1(X,Y = 3): print(X,Y) dic = {'Test1':Test1} dic[Input[0]](Input[1:len(Input)]) #But it wil give me: ['4

如果有人能帮我解决这个问题,我会非常高兴,因为我有点困在这里了。我试图“触发”这个函数,通过按名称调用它,然后添加变量,通过写入数字,数字之间用空格分隔

#I tried:
#(Input: Test1 4 5)
Input = input().split()

def Test1(X,Y = 3):
     print(X,Y)

dic = {'Test1':Test1}
dic[Input[0]](Input[1:len(Input)])
#But it wil give me: ['4', '5'] 3 instead of just 4 5
我想定义X和Y,而不仅仅是我刚才做的X

我正在使用py3.0

我非常感谢您的每一个建议

您可以使用
*
将参数列表应用于函数:

dic[Input[0]](*Input[1:len(Input)])

请注意
*
Input[1:len(Input)]
自己将输入列表作为
x
传递<代码>*将列表展开,以便将其视为多个参数。可以将其视为将数据列表展平到参数列表中

您可以通过如下操作将列表转换为字符串:

Input = input().split()

def Test1(X,Y = 3):
     print(X,Y)

dic = {'Test1':Test1} dic[Input[0]](' '.join(Input[1:len(Input)]))

如果您不明白为什么之后仍然打印3,那么函数Test1接受两个变量,但您只向它传递一个变量,因此它打印您设置默认值的另一个变量(Y),如果您想用Y做些什么,恐怕您需要进一步解释您的想法。

出于好奇,为什么你认为它会“把名单一分为二”
Input[1:len(Input)]
是一个参数。好的,但是如何从中获取两个参数。我定义了X和Y,而不仅仅是X?因此您基本上是在尝试调用Test1方法,方法是解析由空格分隔的字符串中的方法名和参数?
Input
是字符串列表,输入字符串按空格分割。代码中的任何内容都不会将这些字符串转换为数字。请添加*
dic[Input[0]](*Input[1:len(Input)])
注意输出。他们只需要
45