Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将外部参数转换为列表_Python - Fatal编程技术网

Python 将外部参数转换为列表

Python 将外部参数转换为列表,python,Python,我需要运行一个带有外部参数的脚本,其中第一个参数应该是int,第二个参数应该是list:示例: python运行评估ML.py 5“(2,4,6,8)” 当我运行脚本时,我得到: (base) MyPC:ML$ python run_eval_ML.py 5 "(2,4,5,8)" run_eval_ML.py 5 (2,4,5,8) param_grid {'n_neighbors': '(2,4,5,8)'} # 第一个ARGV:5:好的 但第二个参数应该是这种类型:(2,4,5,

我需要运行一个带有外部参数的脚本,其中第一个参数应该是int,第二个参数应该是list:示例:

python运行评估ML.py 5“(2,4,6,8)”

当我运行脚本时,我得到:

(base) MyPC:ML$ python run_eval_ML.py 5 "(2,4,5,8)" 
run_eval_ML.py 
5 
(2,4,5,8) 
param_grid {'n_neighbors': '(2,4,5,8)'}
# 第一个ARGV:5:好的

但第二个参数应该是这种类型:(2,4,5,8)而不是“(2,4,5,8)”

当我分配

var2=sys.argv[2] 
我重新分配

param_grid = {'n_neighbors':var2} 
我明白了

param_grid {'n_neighbors': '(2,4,5,8)'}
而不是

param_grid {'n_neighbors': (2,4,5,8)}
如果你能帮忙的话,先谢谢你


Rgds Carlos

系统将所有元素都作为字符串发送,因此您必须将其拆分为列表,并将每个元素转换为整数

var1 = int(sys.argv[1])  
不使用
()

然后

# split to list of strings
var2 = sys.argv[2].split(",")

# convert to list of integers
var2 = [int(x) for x in var2]
还是一行

var2 = [int(x) for x in sys.argv[2].splti(",")]
或者使用
map()


您还将第一个参数从字符串转换为整数

var1 = int(sys.argv[1])  

系统以字符串形式发送所有数据,因此使用
“2,4,5,8”
运行,并使用
sys.argv[2].split(',')
创建列表。如果需要数字,则必须将sys.argv[2].split(',')]或
var2=list(map(int,sys.argv[2].split(','))
BTW:第一个参数是string
“5”
而不是integer
5
,因此您可能也需要对其进行转换。
var1 = int(sys.argv[1])