慕工程0101907
2023-04-25 16:36:50
如何編寫代碼來識別發(fā)生移位的索引并從 python 中的另一個數(shù)組中獲取相應(yīng)的值?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')最終輸出應(yīng)該是兩個數(shù)組,一個應(yīng)該包含從 array2 獲取的元素,另一個應(yīng)該包含班次的索引號。期望的輸出:Indexes: [3, 8, 12, 15, 18, 23] Final: ['d', 'i', 'm', 'p', 's', 'x']
2 回答

溫溫醬
TA貢獻1752條經(jīng)驗 獲得超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條經(jīng)驗 獲得超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
提交
取消