Python数组是只读的,无法添加值

3 投票
4 回答
16853 浏览
提问于 2025-04-15 15:32

我刚开始学习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_rcsappend 方法替换成了一个浮点数值。这种做法一般不太合适。

6

你现在是在给append()这个函数赋值,其实你应该是想调用.append(float(cols.group(2)))这个方法。

撰写回答