我需要使用傅里叶变换在 python 中创建一个程序。它说:列出索引超出范围,我不明白为什么。错误出现在这些行:
Feven = fft([x[i] for i in xrange(0, n, 2)],n/2)
Fodd = fft([x[i] for i in xrange(1, n, 2)],n/2)
最佳答案
您是否尝试过将列表编译与函数调用分开来找出引发异常的位置?
# assuming n <= len(x)
even = [x[i] for i in xrange(0, n, 2)]
Feven = fft(even,n/2)
您还可以使用切片来获取列表中的每个第二个元素:
even = x[::2]
odd = x[1::2]
关于python - python 2.7中列表索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16457137/