python中的变量
我得到的变量如下:python中的变量,python,Python,我得到的变量如下: ocd[2].likelihood.range[1][0]=[-5219, -5191, 11.7]; ocd[2].likelihood.range[1][1]=[-5180, -5057, 56.5]; 来自另一个程序。我重新格式化为: range10=[-5219, -5191, 11.7]; range11=[-5180, -5057, 56.5]; 为了在Python中使用它们,但这是一个很大的工作,所以我的问题是,是否有可能在Python中使用具有原始名称的这
ocd[2].likelihood.range[1][0]=[-5219, -5191, 11.7];
ocd[2].likelihood.range[1][1]=[-5180, -5057, 56.5];
来自另一个程序。我重新格式化为:
range10=[-5219, -5191, 11.7];
range11=[-5180, -5057, 56.5];
为了在Python中使用它们,但这是一个很大的工作,所以我的问题是,是否有可能在Python中使用具有原始名称的这些变量 你可以用蟒蛇的方式来做:
def range_function(row, column):
return ocd[2].likelihood.range[row][column]
range_function(1, 0) == [-5219, -5191, 11.7]
不确定您要问什么,但我将尝试一下-在“其他”程序的代码中执行以下操作:
范围*
变量之前添加此代码:
class Likelihood():
def __init__(self, x, y):
self.range = [{} for i in range(x)] # without default values
# if you need default values, use this code or numpy.zeros(shape=(x,y))
#self.range = [[0 for j in range(y)] for i in range(x)]
class MyDataType():
def __init__(self, dimension_1, dimension_2):
self.likelihood = Likelihood(dimension_1, dimension_2)
ocd = [0, 1, MyDataType(100, 100)]
# copy-paste your code here:
ocd[2].likelihood.range[1][0]=[-5219, -5191, 11.7];
ocd[2].likelihood.range[1][1]=[-5180, -5057, 56.5];
print(ocd[2].likelihood.range[1][0])
范围10
替换为ocd[2]。可能性。范围[1][0]
,例如在记事本++正则表达式中替换:
Find what: range(\d)(\d)
Replace with: ocd[2].likelihood.range[\1][\2]
i.e. from code: print(range10)
to code: print(ocd[2].likelihood.range[1][0])
“从另一个程序中获取变量”的确切含义是什么?为什么不能使用原始名称?您得到的是
ocd
列表还是文本?ocd[2]。可能性。范围[1][1]=[-5180,-5057,56.5];是长文本文件中的一行。我喜欢使用[-5180,-5057,56.5],我希望在Python中使用“ocd[2].likelion.range[1][1]”作为变量名。如果我能做到这一点,我不必在使用Python之前重命名变量。由于变量的数量很多,重命名它们需要做很多工作。我将变量作为其他程序输出的长文本文件列表,我想使用Python中的变量。类名应为CamelCase。哦,我忘记了列表是可变的,并通过句柄传递,我修复了代码:)非常感谢!这两个版本都有效,但仅适用于ocd[2],下一个数据是ocd[3],等等(例如:ocd[1121].likelion.range[1][1]=[-5180,-5057,56.5];)因此我得到了“index out-range”@perperpersson。如果你有足够的内存来包含所有数据,那么你可以使用ocd=[MyDataType(10,10)表示范围内的i(9999)]
(或不需要)将所有数据塞进内存,我建议将上一个程序的输出解析为文本输入-您需要访问所有ocd
,一次只访问一个ocd
还是一个range
?我使用了999,效果很好!我认为我没有超过999。我对这个解决方案很满意。否则,我实际上只需要var我使用Python绘制其他程序生成的这些数据的图形。目前我只想让它工作。我保证稍后会尝试了解它是如何工作的。:-)谢谢您的帮助!