【发布时间】:2021-06-28 14:57:36
【问题描述】:
我想创建一个具有以下结构的字典:
{"filename_1.wav": {
"name": "sp1",
"embedding": [0, 1, 2, 3]
},
"filename_2.wav": {
"name": "sp2",
"embedding": [4, 5, 6, 7]
},
"filename_3.wav": {
"name": "sp3",
"embedding": [8, 9, 10, 11]
},
}
内部字典中的键 name 和 embedding 保持不变,而它们的值根据文件名而变化。
这是我目前的代码:
outer_dict = {}
inner_dict = {}
audio_filenames = ['filename_1.wav', 'filename_2.wav', 'filename_3.wav']
embeddings = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
speaker_ids = ['sp1', 'sp2', 'sp3']
for audio in audio_filenames:
outer_dict[audio] = inner_dict
for e in embeddings:
for s in speaker_ids:
inner_dict['name'] = s
inner_dict['embedding'] = e
print(dict(outer_dict))
我的输出如下所示:
{'filename_1.wav': {
'name': 'sp3',
'embedding': [8, 9, 10, 11]},
'filename_2.wav': {
'name': 'sp3',
'embedding': [8, 9, 10, 11]},
'filename_3.wav': {
'name': 'sp3',
'embedding': [8, 9, 10, 11]}
}
如您所见,只有音频文件名被正确更新,而从扬声器 ID 和嵌入列表中只获取最后一个元素。
谁能告诉我如何更新扬声器 ID 和嵌入?
谢谢!
【问题讨论】:
标签: python-3.x list dictionary