Python中指定索引字符串拼接及排列应用的高效实现方案问询
问题描述
我有一个字符串列表(或NumPy数组),例如X = ['abc', 'def', 'ghi', 'jkl'],一组索引J = [0, 3],以及一个随机排列p = [0, 3, 2, 5, 1, 4]。需要完成两个核心步骤:
- 第一步:拼接
X中对应J索引的字符串,示例中拼接X[0]和X[3]得到'abcjkl'; - 第二步:对拼接后的字符串应用排列
p,按照规则Z[i] = Y[p[i]](Y为拼接后的原字符串,Z为最终结果)得到'ajclbk'。
实际应用场景的规模极大:X包含1000万个长度为1000的英文字符串,J长度为500万,p长度可达50亿。
当前实现代码
我目前基于NumPy数组的实现代码如下:
import numpy as np X = np.array(['abc', 'def', 'ghi', 'jkl']) J = np.array([0, 3]) p = np.array([0, 3, 2, 5, 1, 4]) Y = ''.join(X[J]) Z = np.array(list(Y)) res = ''.join(Z[p])
优化疑问
是否存在时间效率更优的实现方式?我不局限于使用NumPy数组,也可以采用列表实现。
内容的提问来源于stack exchange,提问作者ProAmateur
相关产品推荐
相关产品推荐

