Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python数组是只读的,可以';t附加值_Python_Arrays - Fatal编程技术网

Python数组是只读的,可以';t附加值

Python数组是只读的,可以';t附加值,python,arrays,Python,Arrays,我是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]+)")

我是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))属性错误: “列表”对象属性“附加”为 只读属性(分配给.append)


是否要附加到数组中

e_rcs.append( float(cols.group(2)) )

执行此操作:
e_rcs.append=float(cols.group(2))
使用浮点值替换数组
e-rcs
append
方法。很少有你想做的事情。

追加是一种方法。您正在尝试覆盖它,而不是调用它

e_rcs.append(float(cols.group(2)))

您正在为append()函数赋值,但希望调用.append(float(cols.group(2))。

请尝试以下操作:

import re

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 = [] # make an empty list

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)) ) # add another float to the list

f.close()
在Python中,只有在需要控制存储的二进制布局时,才使用array.array,即RAM中的普通字节数组


如果你要做大量的科学数据分析,那么你应该看看支持n维数组的模块。可以将NumPy看作是FORTRAN在数学和数据分析方面的替代品。

他并没有将列表称为数组。他使用的是一个数组,来自数组模块,它是Python标准库的一部分。传统上,我会在其他语言中使用数组。这就是我试图在Python中使用的内容,但收效甚微。我应该在Python中使用什么数据类型?@Jared Brown:numpy数组很好。有些人在使用内置的“列表”类型时会说“数组”。一开始我没能读到numpy数组部分。你可能想要一个普通的ol列表。它类似于其他语言中的普通数组。@Nick在本例中使用列表比使用数组('f')有什么好处?