gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:27 25 4
gpt4 key购买 nike

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

code = ['a','b','c']
value = [1,2,3]
list1 = ['a','a','b','c','b','b','a','c']

这是我写的代码。

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

我得到了想要的输出。

print(codeToValue(code,value,list1))
[1, 1, 2, 3, 2, 2, 1, 3]

这段代码适用于小规模的列表,但是当我用大规模的列表运行它时,由于有两个循环,它会花费太多时间。请提出一些建议,以便提高时间效率。任何建议将不胜感激。

最佳答案

你可以使用 dict (感谢 zip() )和 list comprehension :

mapping = dict(zip(code, value))
out = [mapping[v] for v in list1]

关于效率:此代码段受益于 O(1) dict-lookup(尽管您仍然需要先遍历 dict 的值),并且众所周知,列表理解比普通的 for 循环更快,因此您应该期望这段代码有更好的性能。

如果这对您的使用来说仍然太慢,您可能应该在大数据处理中使用专门的库,如 pandas .

关于python - 如何有效地将列表的元素映射到它们的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51113557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com