词典列表:如何快速测试列表中的所有成员?

2024-04-25 22:05:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在操作一个词典列表,例如:

mylist = [
    {'score':11, 'type':'dftz'},
    {'score':15, 'type':'dftz'},
    {'score': 8, 'type':'xcdt'},
    {'score': 3, 'type':'xcdt'}
]

我想:

  1. 获取得分高于10的所有成员的列表索引
  2. 获取包含所有分数的列表或元组,如下所示:[11,15,8,3]

在python3中,最简单和最快的方法是什么?目前,我用一个循环来处理它,在这个循环中,每个成员都要进行迭代测试。有没有更“漂亮”的方法?你知道吗


Tags: 方法列表type成员分数python3词典元组
1条回答
网友
1楼 · 发布于 2024-04-25 22:05:29

“美丽”当然是主观的,但我会使用如下列表理解:

mylist = [
    {'score':11, 'type':'dftz'},
    {'score':15, 'type':'dftz'},
    {'score': 8, 'type':'xcdt'},
    {'score': 3, 'type':'xcdt'}
]

scores = [x['score'] for x in mylist]

indexes = [i for i, x in enumerate(scores) if x>10]

输出:

>>> scores
[11, 15, 8, 3]
>>> indexes
[0, 1]

相关问题 更多 >