2 回答

TA貢獻1795條經驗 獲得超7個贊
您說您想要索引,但 65 在a1列表中的索引為 7。如果您想要實際位置(列表的第一項是 1 而不是 0),那么只需將一個添加到附加到列表中的值。
此外,正如@Chris 提到的,當值不在任何列表中時,我添加了一個打印語句。
a1 = [6.5, 13, 19.5, 26, 39, 52, 58.5, 65]
a11 = [7.2, 14.4, 21.7, 28.9, 43.3, 57.8, 65, 72.2]
a2 = [13, 26, 39, 52, 78, 104, 117, 130]
a22 = [14.4, 28.9, 43.3, 57.8, 86.7, 115.6, 130, 144.4]
inp_rate = [65, 72.2, 72.2, 39, 72.2, 144.4, 78, 13, 72.2, 104, 6.5]
result_list = []
for value in inp_rate:
if value in a1:
result_list.append(a1.index(value))
elif value in a11:
result_list.append(a11.index(value))
elif value in a2:
result_list.append(a2.index(value))
elif value in a22:
result_list.append(a22.index(value))
else:
print("{} cannot be found".format(value))
print(result_list)
這打印
[7, 7, 7, 4, 7, 7, 4, 1, 7, 5, 0]

TA貢獻1875條經驗 獲得超3個贊
我不知道這是否是最有效的方法,但我的方法是:
起初,我將數組放在一個元組中,以便能夠遍歷它們:
arr = (a1, a11, a2, a22)
下一步將遍歷您的輸入和數組,檢查數字是否在數組中,然后將索引附加到輸出列表中:
out = []for i in inp_rate: for j in arr: if i in j: output.append(j.index(i))
當你從 1 而不是 0 開始計數時,你需要在 append 方法中添加 1。
添加回答
舉報