【发布时间】:2021-02-02 12:37:22
【问题描述】:
我正在尝试将程序在下面生成的黑胶唱片字典('sample_music_dict')转换为一个新字典(见下文,'new_music_dict'),该字典将艺术家的专辑连接到单个列表中,其中艺术家成为关键。然后我将使用这本新词典来制作印刷品、屏幕列表和其他东西。
源字典。这是我要转换的字典
sample_music_dict = {
'A-HA': [
'A-Ha',
['HEADLINES & DEADLINES', 'Headlines & Deadlines', 'Jan-17', '']
],
'ABC': [
'Abc',
['THE LEXICON OF LOVE', 'The Lexicon Of Love', 'Jan-17', '']
],
'AC/DC': [
'Ac/Dc',
['BACK IN BLACK', 'Back In Black', 'Jan-17', ''],
['HIGHWAY TO HELL', 'Highway to Hell', 'Jan-17', '']
],
'JON ANDERSON': [
'Jon Anderson',
['3 SHIPS', '3 Ships', 'Nov-19', ''],
['IN THE CITY OF ANGELS', 'In The City Of Angels', 'Jan-17', ''],
['OLIAS OF SUNHILLOW', 'Olias of Sunhillow', 'Jan-17', '']
]
}
目标词典。这是我要转换成的字典
new_music_dict = {
'Abba':['Abba Greatest Hits Vol.2'],
'ABC':['The Lexicon Of Love'],
'AC/DC':['Back In Black','Highway to Hell'],
'All About Eve':['All About Eve'],
'Jon Anderson':['3 Ships','In The City Of Angels','Olias of
Sunhillow']
}
为了解决这个问题,我尝试通过使用代码 for 和 while 语句来迭代源字典,但我不知道如何将数据提取为我需要的列表格式。
例如,如果我将源字典分解为它的基本形式,它有一个 KEY(艺术家姓名大写),VALUE 是一个列表,其中包含 Title Case 中的艺术家姓名,后跟多个列表 - 每张专辑一个列表为艺术家。在每个子列表中是专辑名称和关于专辑的其他三个信息。 像这样:
sample_music_dict = {
'KEY':
['Value'
['L1_0 - Album Nme', 'L1_1- Info1', 'L1_2- Info2', 'L1_3- Info3',
['L2_0 - Album Nme', 'L2_1- Info1', 'L2_2- Info2', 'L2_3- Info3'],
['L3_0 - Album Nme', 'L3_1- Info1', 'L3_2- Info2', 'L3_3- Info3'],
['L4_0 - Album Nme', 'L4_1- Info1', 'L4_2- Info2', 'L4_3- Info3']
}
我想要生成的是一个字典,其中 KEY 作为艺术家名称,然后是一个包含该艺术家所有专辑名称的列表。就像下面的大纲:
new_music_dict = {
'KEY': ['L1_0 - Album Nme','L2_0 - Album Nme',
'L3_0 - Album Nme','L4_0 - Album Nme']
}
一个艺术家的真实数据可能有 10 张专辑或只有两张专辑,因此专辑的数量可以是可变的。
一旦我可以生成我想要的目标字典格式,我就可以使用新字典生成表格数据输出(PrettyTable 或 TextTable),并在我的程序中创建不同的功能。
有什么帮助或建议吗? 谢谢。
【问题讨论】:
标签: python list dictionary