小编cva*_*pal的帖子

如何有效地将列表的元素映射到它们的值?

我有一个列表说list1,我想将其元素映射到相应的值.

code = ['a','b','c']
value = [1,2,3]             
list1 = ['a','a','b','c','b','b','a','c']
Run Code Online (Sandbox Code Playgroud)

这是我写的代码.

def codeToValue(code,value,list1):
    list1_out = [0 for i in range(len(list1))]
    for i in range(len(list1)):
        for j in range(len(code)):
            if list1[i] == code[j]:
                list1_out[i] = value[j]
    return list1_out
Run Code Online (Sandbox Code Playgroud)

我得到了所需的输出.

print(codeToValue(code,value,list1))
[1, 1, 2, 3, 2, 2, 1, 3]
Run Code Online (Sandbox Code Playgroud)

这个代码适用于小型列表,但是当我使用大量列表运行它时,由于两个循环,它需要花费太多时间.请提出建议,以便提高效率.任何建议将不胜感激.

python list

3
推荐指数
1
解决办法
53
查看次数

标签 统计

list ×1

python ×1