python sorted排序和enumerate用法

使用场景:我们想对一个字典型的列表进行排序并对列表中每个字典对象增加一个顺序属性。

pods_list = [
{'name': 'board-board-gthqd-pod-k74tk', 'ip': '10.0.0.114', 'creation_timestamp': 1676366473.0},
{'name': 'board-board-plq8z-pod-dtll5', 'ip': '10.0.0.217', 'creation_timestamp': 1676365802.0}
]

使用sorted函数对“creation_timestamp”排序后:


        pods_list = sorted(pods_list, key=lambda p: p['creation_timestamp'])
        print(f"pods_list: {pods_list}")

pods_list: [
{'name': 'board-board-plq8z-pod-dtll5', 'ip': '10.0.0.217', 'creation_timestamp': 1676365802.0},
{'name': 'board-board-gthqd-pod-k74tk', 'ip': '10.0.0.114', 'creation_timestamp': 1676366473.0}
]

使用enumerate后输出:

for i, p in enumerate(pods_list):
            print(f"i: {i}, p: {p}")

i: 0, p: {'name': 'board-board-plq8z-pod-dtll5', 'ip': '10.0.0.217', 'creation_timestamp': 1676365802.0}
i: 1, p: {'name': 'board-board-gthqd-pod-k74tk', 'ip': '10.0.0.114', 'creation_timestamp': 1676366473.0}

排序并得到index后我们可以把index加入到每个对象的属性中:

        pods_list = [dict({'num': i}, **p) for i, p in enumerate(pods_list)]
        print(f"pods_list: {pods_list}")


pods_list: [
{'num': 0, 'name': 'board-board-plq8z-pod-dtll5', 'ip': '10.0.0.217', 'creation_timestamp': 1676365802.0},
{'num': 1, 'name': 'board-board-gthqd-pod-k74tk', 'ip': '10.0.0.114', 'creation_timestamp': 1676366473.0}
]

猜你喜欢

转载自blog.csdn.net/wangyuntuan/article/details/129038614