我有以下python argparse
解析器:
pointparser = argparse.ArgumentParser(add_help=False)
pointparser.add_argument("-a", "--a_value", default="NaN", nargs="?",
type=float)
pointparser.add_argument("-b", "--b_value", default="NaN", nargs="?",
type=float)
...
pointparser.add_argument("-j", "--j_value", default="NaN", nargs="?",
type=float)
data_point = pointparser.parse_args(parameterlist)
datapoint=[data_point.a_value, data_point.b_value, data_point.c_value,
data_point.d_value, data_point.e_value, data_point.f_value,
data_point.g_value, data_point.h_value, data_point.i_value,
data_point.j_value]
是否可以遍历参数a-j并直接将它们存储在列表中。这样,我就可以打开参数的数量,即只转到-c
或甚至转到-k
答案 0 :(得分:1)
import argparse
import math
pointparser = argparse.ArgumentParser(add_help=False)
pointparser.add_argument("-a", "--a_value", default="NaN", nargs="?",
type=float)
pointparser.add_argument("-b", "--b_value", default="NaN", nargs="?",
type=float)
pointparser.add_argument("-j", "--j_value", default="NaN", nargs="?",
type=float)
data_point = pointparser.parse_args()
datapoint = [value for key, value in sorted(vars(data_point).items())
if not math.isnan(value)]
print(datapoint) # [1.0, 2.0]