将Python字典转换为列表,序列错误值

时间:2019-06-20 18:20:49

标签: python list dictionary dtmf

我必须阅读.mat文件并绘制其频谱图。当我从文件中读取内容时,会得到字典,然后将其转换为列表。转换是通过简单的for循环完成的(如代码所示)。 signal.stft函数中出现错误,该错误以“ ValueError:使用序列设置数组元素”。所以我错过了什么,有人可以帮助我编写这段代码。

Fs = 8000
dtmf = sio.loadmat('dtmf1.mat')
dictlist = []

for key, value in dtmf.items():
    temp = [key,value]
    dictlist.append(temp)

f1, t1, Zxx1 = signal.stft(dictlist, Fs, nperseg=512,
                           window=signal.hamming(512), 
                           noverlap=512, boundary='even')

plt.figure()
plt.pcolormesh(t1, f1, 20*np.log10(np.abs(Zxx1)))
plt.xlabel('Time [s]')
plt.ylabel('Freq [Hz]')$

1 个答案:

答案 0 :(得分:0)

我应该做的是

dictlist = dtmf['dtmf1'] 

代替

for key, value in dtmf.items():
temp = [key,value]
dictlist.append(temp)

因为在我的应用程序字典中有冗余键(“ dtmf1”以外的所有键)。

无论如何,非常感谢âńōŋŷXmoůŜ和balderman。