【发布时间】:2021-07-07 15:28:39
【问题描述】:
我正在寻找一种有效的方法来在字符串列表的列表中查找不同的字符串并返回它们的索引。代码如下:
inp = [ 'ans1', 'ans2', 'ans3' ]
output = [ [ 'aaa', 'ans1', 'bbb', 'ccc', 'ans2', 'ddd' ],
[ 'bbb', 'aaa', 'ans2', 'ddd', 'ans1', 'aaa' ],
[ 'ddd', 'ccc', 'ans2', 'ans1', 'aaa', 'bbb' ] ]
# expected result
# result = [ [ 1, 4, 3 ], [ 4, 2, 2 ], [ -1, -1, -1 ] ]
结果中报告的是inp 列表中每个字符串在output 列表中的位置索引。例如,ans2 位于第一个子列表中的索引 4、第二个子列表中的索引 2 和第三个子列表中的索引 2。 ans1 也是如此。但是,ans3 不会出现在任何子列表中,因此返回的索引是 -1。
我正在寻找一种高效的方法来进行这个计算(可能是并行的?),同时避免经典的 for 循环,这显然可以完成.
一些注意事项:
-
output的形状等于[ len( inp ), L ],其中L是字典的大小。在这种情况下L = 5。
【问题讨论】:
-
欢迎来到 Stack Overflow!请拨打tour,阅读what's on-topic here、How to Ask和question checklist,并提供minimal reproducible example。 “为我实现此功能”与此站点无关。你必须诚实地尝试,然后就你的算法或技术提出一个具体问题。
-
对不起,我尝试了通常的嵌套 for 循环来这样做,但我正在寻找性能,这就是我所要求的,因为我真的不知道从哪里开始。
-
@PranavHosangadi 谢谢!我给它一个机会
标签: python string list performance find