Python 将外部参数转换为列表
我需要运行一个带有外部参数的脚本,其中第一个参数应该是int,第二个参数应该是list:示例: python运行评估ML.py 5“(2,4,6,8)” 当我运行脚本时,我得到: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,
(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”
而不是integer5
,因此您可能也需要对其进行转换。
var1 = int(sys.argv[1])