我是Python新手。下面的代码在尝试向数组追加值时出错。我做错了什么?
import re
from array import array
freq_pattern = re.compile("Frequency of Incident[\(\)A-Za-z\s]*\.*\s*([\.0-9]*)")
col_pattern = re.compile("([-\.0-9]+)\s+([-\.0-9]+)\s+([-\.0-9]+)\s+([-\.0-9]+)\s+([-\.0-9]+)")
e_rcs = array('f')
f = open('example.4.out', 'r')
for line in f:
print line,
result = freq_pattern.search(line)
if result:
freq = float(result.group(1))
cols = col_pattern.search(line)
if cols:
e_rcs.append = float(cols.group(2))
f.close()
- 错误**
追溯(最近调用最后调用):
文件"D:\workspace\CATS Parser\cats-post.py",第31行,位于e_rcs. append =浮点型(列组(2))中属性错误:"list"对象属性"append"是只读属性(分配给. append)
4条答案
按热度按时间xdyibdwo1#
你正在给append()函数赋值,你想调用.append(float(cols.group(2)))。
kx5bkwkv2#
是否要追加到数组?
执行此操作:
e_rcs.append = float(cols.group(2))
将数组e-rcs
的append
方法替换为浮点值,这是您很少想做的事情。lh80um4z3#
append是一个方法。您试图覆盖它而不是调用它。
dgiusagp4#
试试这个:
在Python中,只有当你需要控制存储的二进制布局时才使用array. array,也就是RAM中的普通字节数组。
如果你要做大量的科学数据分析,那么你应该看看NumPy模块,它支持n维数组。在数学和数据分析中,可以把NumPy看作FORTRAN的替代品。