首页 > 解决方案 > 在python for循环中使用什么代替list - java的傅立叶示例

问题描述

我正在尝试在 Python 中手动编写傅立叶变换,但在 Python 方面的经验比在 Java 方面的经验要少。

我假设列表不是在 for 循环中使用的最佳选择,并且我还假设这段代码不是非常 Pythonic,并且对于我正在尝试做的事情可能有更好的语法。

我输入一个简单的测试=[10, 10, 10, -10, -10, -10, 10, 10, 10, -10, -10,-10]

我得到错误 'list' 对象属性 'instert' 是只读的。

什么数据类型会更好?


import math
pi = math.pi

def dft(x):
    X=[]
    N = len(x)
    re = 0
    im = 0
    for k in range(0,N):
        for n in range(0,N):
            phi = (2*pi*k*n)/N

            re += (x[n]*math.cos(phi))
            im -= (x[n]*math.sin(phi))

    re = re/N
    im = im/N
    h = (re, im)
    X.insert = (k,h) #object with real and imaginary component

    return (X)

标签: javapythonlistloopsfft

解决方案


一份清单就好了。

X.insert = (k,h)正在尝试将元组 (k,h) 分配给 的insert属性X。您想改为调用该insert方法。

X.insert(k,h)

注意:您还需要检查缩进。该语句当前不在循环内。


推荐阅读