python - 类型错误 : 'int' object does not support item assignment error

标签 python arrays

sig_txt:[45 67 83 32767 101 90 50]

idx_rr:[101]//32767 之后的索引

sig: [45 67 83 101 90 50]//除 32767 之外的所有元素

基本上发生的情况是从原始数组开始,除了值等于 32767 的元素之外的所有元素都传递到 sig 数组。 idx_rr 获取紧随 32767 之后的值。我已经为此编写了一个Python。但我收到此错误:

"'int' object does not support item assignment"

当我尝试绘制 sigidx_rr 值时。我可以得到一些帮助吗?

R_peak = False   
j = 0
k = 0
idx_rr = []
sig = []

for i in range (len(sig_txt)):
    if (sig_txt[i] == 32767):
        idx_rr = i+1
        idx_rr[j] = np.array(sig_txt[i+1])
        sig = i+1
        sig[k] = np.array(sig_txt[i+1])
        k = k + 1
        j = j + 1
        print(idx_rr)
        R_peak = True
    else:
        if (R_peak == False):
            sig = i
            sig[k] = np.array(sig_txt[i])
            k = k + 1

        else:
            R_peak = False

plt.figure(figsize=(20,8))
plt.plot(sig)
plt.scatter([idx_rr], [sig[idx_rr]], c='g')  
plt.show() 

TypeError Traceback (most recent   call last)
<ipython-input-1474-dcea2717b9f2> in <module>
----> 1 get_intervals('/home/yasaswini/hp2-notebooks/ecg_data   
/Recorded_Data_Patch_Simulator/TXT_Files   
/ECG_data_128Hz_Simulator_Patch_Normal_data.txt',128)

<ipython-input-1471-5a6b384defd1> in get_intervals(fname,sampling_rate)
22             if (R_peak == False):
23                 sig = i
---> 24                 sig[k] = np.array(sig_txt[i])
25                 k = k + 1
26 

TypeError: 'int' object does not support item assignment

最佳答案

使用idx_rr = i+1,之前定义的list变成int,因此没有索引idx_rr[j] 为其赋值。这同样适用于 sig 变量。

请注意,问题不在于声明,Python 允许您将变量重新分配给新类型。问题在于 idx_rr 的类型为 int,并且您无法访问和索引 intidx_rr[j] .

试试这个

R_peak = False   
j = 0
k = 0
idx_rr = []
idx_rr_int = 0
sig = []
sig_int = 0
for i in range (len(sig_txt)):
    if (sig_txt[i] == 32767):
        idx_rr_int = i+1
        idx_rr[j] = np.array(sig_txt[i+1])
        sig_int = i+1
        sig[k] = np.array(sig_txt[i+1])
        k = k + 1
        j = j + 1
        print(idx_rr_int)
        R_peak = True
    else:
        if (R_peak == False):
            sig_int = i
            sig[k] = np.array(sig_txt[i])
            k = k + 1

        else:
            R_peak = False

plt.figure(figsize=(20,8))
plt.plot(sig)
plt.scatter([idx_rr], [sig[idx_rr]], c='g')  
plt.show() 

关于python - 类型错误 : 'int' object does not support item assignment error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58989570/

相关文章:

python - 在django allauth登录页面加载css文件

python - 你如何从 python appengine 中的 basehandler 调用处理程序?

python - 使用 rdflib 打印出本体中每个概念的个体

arrays - 如何快速创建对象的数组列表

arrays - Swift:在调用 indexOf 时无法将类型的值转换为 @noescape,在使用过滤函数进行过滤之后

python - Python 中的重复采样

python - 对象类型 <class 'str' > 无法传递给 C 代码 - 虚拟环境

c - 为什么这个数组脚本不能打印正确的结果?

java - 在同一行向 ArrayList 添加多个 int

javascript - 给定一个整数数组,output[i] = 除自身以外所有元素的乘积