gpt4 book ai didi

python - 在另一个列表中编码列表元素存在的最有效方法

转载 作者:行者123 更新时间:2023-11-28 20:30:16 24 4
gpt4 key购买 nike

假设我有一个像这样的排序主列表:main = ["a", "b", "cd", "e"]

还有一些其他列表,例如 l1 = ["a", "cd"]l2 = ["b", "cd"]。还保证了 l1l2 等单个列表的所有元素也属于 main并非所有单个列表的长度都必须相同,但所有列表的长度都小于或等于 main

现在,对于每个单独的列表,我想创建一个向量来编码 main 的哪些元素出现在单独的列表中。例如对于 l1,我们将得到一个向量(numpy 数组)[1,0,1,0],因为第一个和第三个元素(我可以说“第一个”和"third"因为 mainmain 的排序)。类似地,对于 l2,我们将得到 [0,1,1,0]

执行此操作的有效方法是什么?我不想要天真的蛮力方法,因为那会非常慢。是否涉及任何中间 numpy 转换/操作?很乐意就此获得帮助!

最佳答案

你可以只使用列表理解:

main = ["a", "b", "cd", "e"]
l1 = ["a", "cd"]

print ([item in l1 for item in main])

输出:

[True, False, True, False]

print ([1 if item in l1 else 0 for item in main])

输出:

[1, 0, 1, 0]

关于python - 在另一个列表中编码列表元素存在的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57951650/

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