我在写一些需要存储和访问不同类型元素的列表的Python代码。此列表中的每个元素都是不同的类类型。例如:Python中的容器列表:标准列表与numpy数组
def file_len(fname):
i = 0
with open(fname) as f:
for i, l in enumerate(f):
pass
return i + 1
element_list = [ ]
data = np.loadtxt(filename)
if file_len(filename) == 1 :
data = np.loadtxt(filename)
param1 = data[0]
param2 = data[1]
element_list.append(Class1.Class1(param1,param2))
else:
for field in data:
param1 = field[0]
param2 = field[1]
element_list.append(Class1.Class1(param1, param2)
后来,我将需要访问从插在element_list几次Class1的方法,但不需要列表进行修改:
for i in xrange(10000):
for element in element_list:
result += element.calculate_result(i).real #the results will be complex
有没有做一个有效的方法这个?
谢谢!
你的实际问题是什么?以及你的意思是什么_efficient_? – moooeeeep
我必须访问这个列表10亿次或更多,这是_slow_。其中一个瓶颈是访问元素。有没有更加pythonic的做法呢? – Ivan
您可能可以通过对numpy数组'data'执行操作来加速计算。通过将数据分成“Class1.Class1”实例的**列表**,我们失去了利用numpy的机会。但要真正帮助你,我们需要看看'calculate_result'的定义。 – unutbu