繁体   English   中英

如何在python中获取字典排序列表的索引?

[英]How to get index of a sorted list of dictionary in python?

因此,我知道对字典列表进行排序的方法,但我只是无法弄清楚如何同时获取索引。 假设我有一个像这样的字典:

cities = [{'city': 'Harford', 'state': 'Connecticut'},
          {'city': 'Boston', 'state': 'Massachusetts'},
          {'city': 'Worcester', 'state': 'Massachusetts'},
          {'city': 'Albany', 'state': 'New York'},
          {'city': 'New York City', 'state': 'New York'},
          {'city': 'Yonkers', 'state': 'Massachusetts'}]

我可以使用“状态”对这个字典进行排序:

new_cities = sorted(cities, key=itemgetter('state'))

得到:

    cities = [{'city': 'Harford', 'state': 'Connecticut'},
          {'city': 'Boston', 'state': 'Massachusetts'},
          {'city': 'Worcester', 'state': 'Massachusetts'},
          {'city': 'Yonkers', 'state': 'Massachusetts'},
          {'city': 'Albany', 'state': 'New York'},
          {'city': 'New York City', 'state': 'New York'}]

但是,如何同时获取列表的索引?

new_cities = sorted(enumerate(cities), key=lambda x: x[1]['state'])

首先枚举它会为您提供原始cities列表的索引,然后可以对其进行排序。

>>> new_cities
[(0, {'city': 'Harford', 'state': 'Connecticut'}),
 (1, {'city': 'Boston', 'state': 'Massachusetts'}),
 (2, {'city': 'Worcester', 'state': 'Massachusetts'}),
 (5, {'city': 'Yonkers', 'state': 'Massachusetts'}),
 (3, {'city': 'Albany', 'state': 'New York'}),
 (4, {'city': 'New York City', 'state': 'New York'})]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM