我正在学习使用字典,并具有这样的结构:
DATA = {
'ATL': {
'2019': {
'status': 'inactive',
'abbr': 'ATL',
'city': 'Atlanta'},
'2016': {
'status': 'active',
'abbr': 'ATL',
'city': 'Atlanta'},
'2018': {
'status': 'inactive',
'abbr': 'ATL',
'city': 'Atlanta'},
'2017': {
'status': 'active',
'abbr': 'ATL',
'city': 'Atlanta'}
}
}
这是按年份排序的一种尝试:
sorted_keys = sorted(DATA['ATL'].keys())
每当我得到TypeError: '<' not supported between instances of 'int' and 'str'
。当我打印键时,它只返回我认为是“ int”的年份,对吗?由于我刚开始使用dict,因此我很清楚dict的结构可能存在问题,但是非常困难。任何帮助,将不胜感激。
首先请注意,如果要按键对实际词典进行排序,则不仅要对键进行输入,还要对sorted
整个词典进行输入。
DATA.items()
将返回key
/value
元组。在这种情况下,您必须指定要根据哪些条件进行排序。为此,您可以在中使用key
参数sorted
:
dict(sorted(DATA['ATL'].items(), key=lambda x: int(x[0])))
{'2016': {'status': 'active', 'abbr': 'ATL', 'city': 'Atlanta'},
'2017': {'status': 'active', 'abbr': 'ATL', 'city': 'Atlanta'},
'2018': {'status': 'inactive', 'abbr': 'ATL', 'city': 'Atlanta'},
'2019': {'status': 'inactive', 'abbr': 'ATL', 'city': 'Atlanta'}}
另请注意,建议将强制转换为int
,否则排序过程将按字典顺序进行,在这种情况下这可能不是问题,但这样做通常更安全(不确定在此处理的年份范围,但按字典顺序排序会产生意外结果,例如950> 2019)
这也可以防止出现错误,这似乎是由于键中混合了数据类型而导致的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句