【问题标题】:Most pythonic way to convert one list to another list using a dictionary? [duplicate]使用字典将一个列表转换为另一个列表的最 Pythonic 方法? [复制]
【发布时间】:2019-10-28 05:28:34
【问题描述】:

是否有更高效和/或 python 的方式来使用字典进行以下列表转换?

d = {1:2, 2:3, 3:4}
e = [1 , 1, 2, 2, 3, 1]
f=[]
for l in e:
    f.append(d[l])
f

【问题讨论】:

    标签: python


    【解决方案1】:

    使用map(高效)

    f = map(d.get, e)
    

    对于更大的数据集和复杂的操作,请使用 pandas

    >>> import pandas as pd
    >>> s = pd.Series(e)
    >>> s.map(d)
    

    使用list comprehension

    f = [d[key] for key in e]
    

    时间

    对于 1000 个项目的列表,

    列表理解: 2.346038818359400 × 10-4

    地图: 9.059906005859375 × 10-6

    【讨论】:

    • 从技术上讲,map 函数返回一个生成器对象,而不是一个列表,因此您的计时测量没有什么意义
    • map 出现更快的原因是它实际上并没有做任何事情,它是一个惰性生成器。为了公平比较(并获得 OP 实际寻找的类型),请将 map 包装在 list
    • @Lesiak 技术上 map 返回一个map 对象,它不是生成器
    猜你喜欢
    • 2016-09-14
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 2018-10-10
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多