如果有人可以帮助我解决这个问题,我将非常高兴,因为我有点被困在这里。我试图通过名称来调用它,然后通过写数字来添加变量,然后用空格分开,以触发该函数。
#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
我非常感谢每个建议
答案 0 :(得分:0)
您可以使用*
“散布” /将参数列表应用于函数:
dic[Input[0]](*Input[1:len(Input)])
请注意*
。 Input[1:len(Input)]
本身将输入列表作为x
传递。 *
将列表分散开,因此将其视为多个参数。将其视为将数据列表展平到参数列表中。
答案 1 :(得分:-1)
您可以通过执行join
这样将列表转换为字符串:
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做些什么,恐怕您需要进一步说明您的想法。