在Python中输入参数

在Python中输入参数,python,excel,random,parameters,Python,Excel,Random,Parameters,我正在尝试将参数输入到random.triangal(),这将是(低、高、模式) 为了获得参数,我从Excel单元格中提取它们。基本上,我必须创建一个数组,例如参数[0]=1,3,2,其中1,3,2是我需要输入到三角函数中的 我对Python/Excel集成和random函数相当陌生,所以我想问的是,我是否可以从数组中获取这些参数并在函数中使用它们 那根本没问题(如果我理解正确的话) 你只要打个电话就可以了 random.triangular(*parameters[0]) 在这种情况下,星号

我正在尝试将参数输入到
random.triangal()
,这将是
(低、高、模式)

为了获得参数,我从Excel单元格中提取它们。基本上,我必须创建一个数组,例如
参数[0]=1,3,2
,其中
1,3,2
是我需要输入到三角函数中的

我对Python/Excel集成和
random
函数相当陌生,所以我想问的是,我是否可以从数组中获取这些参数并在函数中使用它们

那根本没问题(如果我理解正确的话)

你只要打个电话就可以了

random.triangular(*parameters[0])
在这种情况下,星号被称为“”,它将接受一个iterable并解压缩它的项,以便将它们作为参数输入函数

>>> import random
>>> parameters = [[1,3,2], [4,5,6]]
>>> random.triangular(*parameters[0])
1.796949832039262
如果参数实际上存储为字符串,则应重新考虑数据模型。您可以使用解析文字字符串:

>>> import ast
>>> dumb_parameters = ["1,3,2", "4,5,6"]
>>> parameters = [ast.literal_eval(s) for s in dumb_parameters]
>>> parameters
[(1, 3, 2), (4, 5, 6)]
>>> random.triangular(*parameters[0])
2.2933615845752904

使用指针可以使用单元格数据,但现在数字被读取为字符串,因此它将(1,2,3)读取为5个参数,而不是3个参数。有没有办法把每个数字分开,这样我也可以使用更高的数字?嗯,那么
1,2,3
是一个字符串,而不是一个列表?否则,你不会得到五个元素。当您执行
打印(repr(参数[0]))
时,您会得到什么?顺便说一下,此代码中没有指针。Python没有指针。不要混淆Python语法和C语法……我想我的主要问题是,当我扫描excel列时,我会得到一个列表:[,,,'1,2,3',],我很难将该字符串转换成3个单独的整数来使用。@AJK:好的,这是一个Unicode字符串。没关系,
ast.literal\u eval()
应该可以处理这些问题。