选择python字典中以相同字母开头的id

时间:2017-10-11 16:45:33

标签: python python-3.x dictionary

我有一本名字和年龄的字典:

classmates = {'Anne':15, 'Laura':17, 'Michel':16, 'Lee':15, 'Mick':17, 'Liz':16}

我想选择所有带有字母" L"的名字。我可以这样做:

for name, age in classmates.items():
    if "L" in name:
        print(name)

Lnames = [name for name in classmates.items() if "L" in name]

当我有数百万条记录并且需要重复操作数百万次时,是否有更有效的方法?

2 个答案:

答案 0 :(得分:1)

一张带有List Comprehension的衬垫。

[ key for key in classmates.keys() if key.startswith('L') ]

#driver values

In : classmates = {'Anne':15, 'Laura':17, 'Michel':16, 'Lee':15, 'Mick':17, 'Liz':16}
Out : ['Lee', 'Liz', 'Laura']

正如其他人所指出的那样,使用startswith代替in来查找角色是否在开头。

答案 1 :(得分:0)

在使用某种并行计算之前,搜索时间不会有任何影响。您可以使用@Kaushnik NP提到的过滤来过滤多个过程中的分割数据块 因此,您必须将字典拆分为4个较小的字典(取决于处理器所具有的核心数),在每个块上运行一个工作人员并将您的公共数据存储在某处。 这是一个片段,它使用多处理python库和队列来安排一些工作并存储该工作的结果:

:tag

有关该主题的其他示例,use that link