Python数组是只读的,无法添加值
我刚开始学习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 = float(cols.group(2)) 属性错误: 'list'对象的属性'append'是只读的(不能给.append赋值)
4 个回答
3
append是一个方法。你现在是在试图覆盖它,而不是去调用它。
e_rcs.append(float(cols.group(2)))
6
你想要往数组里添加内容吗?
e_rcs.append( float(cols.group(2)) )
这样做:e_rcs.append = float(cols.group(2))
是把数组 e_rcs
的 append
方法替换成了一个浮点数值。这种做法一般不太合适。
6
你现在是在给append()这个函数赋值,其实你应该是想调用.append(float(cols.group(2)))这个方法。