如何编写代码来识别发生移位的索引并从 python 中的另一个数组中获取相应的值?array1 = (0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,2,2,2,3,3,3,3,3,1,1,1)array2 = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z')最终输出应该是两个数组,一个应该包含从 array2 获取的元素,另一个应该包含班次的索引号。期望的输出:Indexes: [3, 8, 12, 15, 18, 23] Final: ['d', 'i', 'm', 'p', 's', 'x']
2 回答

温温酱
TA贡献1752条经验 获得超4个赞
这是一个解决方案
array1= [0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,2,2,2,3,3,3,3,3,1,1,1]
array2= ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
cur=array1[0]
indxes=[]
final=[]
for i in range(1,len(array1)):
if array1[i]!=cur:
cur=array1[i]
indxes.append(i)
final.append(array2[i])
print(indxes)
print(final)

神不在的星期二
TA贡献1963条经验 获得超6个赞
这是一个可能的解决方案:
indexes = [i for i in range(1, len(array1)) if array1[i-1] != array1[i]]
final = [array2[i] for i in indexes]
添加回答
举报
0/150
提交
取消