如何按字母对嵌套字典进行排序?
How to sort a nested dictionary by letter?
我有问题。我有一个dict
。这包含缩写。这个字典应该按照 shortForm
排序。首先是带有 A, B, ..., Z
的所有短格式。
我已经用 sorted
试过了,但这并没有达到预期的效果。现在我的问题是如何按字母对字典进行排序以获得所需的输出(见下文)?
代码
final_output = {
"abbreviation_knmi": {
"symbol": "knmi",
"shortform": "KNMI",
"longform": "Koninklijk Nederlands Meteorologisch Instituut"
},
"abbreviation_fbi": {
"symbol": "fbi",
"shortform": "FBI",
"longform": "Federal Bureau of Investigation"
},
"abbreviation_eg": {
"symbol": "eg",
"shortform": "e.g.",
"longform": "For example"
}
}
sorted_list = sorted(final_output.keys(), key=lambda x: (final_output[x]['shortform']))
print(sorted_list)
[OUT] ['abbreviation_knmi', 'abbreviation_fbi', 'abbreviation_eg']
期望的输出字典
{
"abbreviation_eg": {
"symbol": "eg",
"shortform": "e.g.",
"longform": "For example"
}
"abbreviation_fbi": {
"symbol": "fbi",
"shortform": "FBI",
"longform": "Federal Bureau of Investigation"
},
"abbreviation_knmi": {
"symbol": "knmi",
"shortform": "KNMI",
"longform": "Koninklijk Nederlands Meteorologisch Instituut"
},
}
好像已经回答了here
final_output = {
"abbreviation_knmi": {
"symbol": "knmi",
"shortform": "KNMI",
"longform": "Koninklijk Nederlands Meteorologisch Instituut"
},
"abbreviation_fbi": {
"symbol": "fbi",
"shortform": "FBI",
"longform": "Federal Bureau of Investigation"
},
"abbreviation_eg": {
"symbol": "eg",
"shortform": "e.g.",
"longform": "For example"
}
}
sorted_dict = dict(sorted(final_output.items(), key=lambda x: x[1]['shortform']))
print(sorted_dict)
输出:
{ 'abbreviation_eg': { 'longform': 'For example',
'shortform': 'e.g.',
'symbol': 'eg'},
'abbreviation_fbi': { 'longform': 'Federal Bureau of Investigation',
'shortform': 'FBI',
'symbol': 'fbi'},
'abbreviation_knmi': { 'longform': 'Koninklijk Nederlands Meteorologisch '
'Instituut',
'shortform': 'KNMI',
'symbol': 'knmi'}}
我有问题。我有一个dict
。这包含缩写。这个字典应该按照 shortForm
排序。首先是带有 A, B, ..., Z
的所有短格式。
我已经用 sorted
试过了,但这并没有达到预期的效果。现在我的问题是如何按字母对字典进行排序以获得所需的输出(见下文)?
代码
final_output = {
"abbreviation_knmi": {
"symbol": "knmi",
"shortform": "KNMI",
"longform": "Koninklijk Nederlands Meteorologisch Instituut"
},
"abbreviation_fbi": {
"symbol": "fbi",
"shortform": "FBI",
"longform": "Federal Bureau of Investigation"
},
"abbreviation_eg": {
"symbol": "eg",
"shortform": "e.g.",
"longform": "For example"
}
}
sorted_list = sorted(final_output.keys(), key=lambda x: (final_output[x]['shortform']))
print(sorted_list)
[OUT] ['abbreviation_knmi', 'abbreviation_fbi', 'abbreviation_eg']
期望的输出字典
{
"abbreviation_eg": {
"symbol": "eg",
"shortform": "e.g.",
"longform": "For example"
}
"abbreviation_fbi": {
"symbol": "fbi",
"shortform": "FBI",
"longform": "Federal Bureau of Investigation"
},
"abbreviation_knmi": {
"symbol": "knmi",
"shortform": "KNMI",
"longform": "Koninklijk Nederlands Meteorologisch Instituut"
},
}
好像已经回答了here
final_output = {
"abbreviation_knmi": {
"symbol": "knmi",
"shortform": "KNMI",
"longform": "Koninklijk Nederlands Meteorologisch Instituut"
},
"abbreviation_fbi": {
"symbol": "fbi",
"shortform": "FBI",
"longform": "Federal Bureau of Investigation"
},
"abbreviation_eg": {
"symbol": "eg",
"shortform": "e.g.",
"longform": "For example"
}
}
sorted_dict = dict(sorted(final_output.items(), key=lambda x: x[1]['shortform']))
print(sorted_dict)
输出:
{ 'abbreviation_eg': { 'longform': 'For example',
'shortform': 'e.g.',
'symbol': 'eg'},
'abbreviation_fbi': { 'longform': 'Federal Bureau of Investigation',
'shortform': 'FBI',
'symbol': 'fbi'},
'abbreviation_knmi': { 'longform': 'Koninklijk Nederlands Meteorologisch '
'Instituut',
'shortform': 'KNMI',
'symbol': 'knmi'}}