dict相关
'''
for test to print the value...
'''
data={'1.wav':[[ 1.9010893 , 1.8951541 , 0.7492561 , 1.1373364 ,
2.1521096 , 4.452796 ],
[ 1.5981388 , 1.5932648 , 1.4989793 , 0.3432958 ,
0.92565787, 2.1640224 ],
[ 1.781238 , 1.7701747 , 1.1760545 , 0.7774027 ,
1.6683146 , 3.6360538 ],
[ 1.1537697 , 1.147165 , 1.3075315 , -0.01970535,
0.41304815, 1.2876999 ],
[ 1.2975202 , 1.2898936 , 1.1695509 , -0.6427328 ,
-0.4474898 , -0.25508943]]}
for key, val in data.items():
print()
print(key)
seg = data[key][1:1 + 2]
print(len(val))
print(seg)
print(len(seg))
data2={}
mel=[[ 1.9010893 , 1.8951541 , 0.7492561 , 1.1373364 ,
2.1521096 , 4.452796 ],
[ 1.5981388 , 1.5932648 , 1.4989793 , 0.3432958 ,
0.92565787, 2.1640224 ],
[ 1.781238 , 1.7701747 , 1.1760545 , 0.7774027 ,
1.6683146 , 3.6360538 ],
[ 1.1537697 , 1.147165 , 1.3075315 , -0.01970535,
0.41304815, 1.2876999 ],
[ 1.2975202 , 1.2898936 , 1.1695509 , -0.6427328 ,
-0.4474898 , -0.25508943]]
f0=[-1.0000000e+10, -1.0000000e+10, -1.0000000e+10,6.0348207e-01,
6.5606028e-01, 6.1456722e-01, 6.2525672e-01]
data2.setdefault('1.wav',[]).append(mel)
data2.setdefault('1.wav',[]).append(f0)
print("data2")
print(data2)
for key, val in data2.items():
print(data[key])
# print(val[0][])
# list_uttr = data2[key]
# seg2 = list_uttr[0][1:1 + 2]
# print(seg2)
# print(len(seg2))
运行结果
1.wav
5
[[1.5981388, 1.5932648, 1.4989793, 0.3432958, 0.92565787, 2.1640224], [1.781238, 1.7701747, 1.1760545, 0.7774027, 1.6683146, 3.6360538]]
2
data2
{'1.wav': [[[1.9010893, 1.8951541, 0.7492561, 1.1373364, 2.1521096, 4.452796], [1.5981388, 1.5932648, 1.4989793, 0.3432958, 0.92565787, 2.1640224], [1.781238, 1.7701747, 1.1760545, 0.7774027, 1.6683146, 3.6360538], [1.1537697, 1.147165, 1.3075315, -0.01970535, 0.41304815, 1.2876999], [1.2975202, 1.2898936, 1.1695509, -0.6427328, -0.4474898, -0.25508943]], [-10000000000.0, -10000000000.0, -10000000000.0, 0.60348207, 0.65606028, 0.61456722, 0.62525672]]}
[[1.9010893, 1.8951541, 0.7492561, 1.1373364, 2.1521096, 4.452796], [1.5981388, 1.5932648, 1.4989793, 0.3432958, 0.92565787, 2.1640224], [1.781238, 1.7701747, 1.1760545, 0.7774027, 1.6683146, 3.6360538], [1.1537697, 1.147165, 1.3075315, -0.01970535, 0.41304815, 1.2876999], [1.2975202, 1.2898936, 1.1695509, -0.6427328, -0.4474898, -0.25508943]]
观察注意到,在第二种情况下,字典中一个key对应多个value使用这种append的方式来实现之后,在key in data2.items():下使用data2[key]来取出value只能取出第一个对应的value,即放入的mel部分,sp部分没有。
如果正确处理多个值,1)是不要在key in data2.items():下,而是直接用data2[key]可以取出全部 2)需要使用value in data2.items(): print(value),可以打印两个对应的value,则使用value[0], value[1]来分别处理两个对应的value