亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 4 個列表的組中查找項目的索引

在 4 個列表的組中查找項目的索引

瀟瀟雨雨 2022-07-05 15:38:07
以下是 python 中的一個函數,用于在 4 組中查找輸入的索引。def mapping(inp_rate=[],inp_rssi=[]):    a1=[6.5,13.0,19.5,26.0,39.0,52.0,58.5,65.0]`    a11=[7.2,14.4,21.7,28.9,43.3,57.8,65.0,72.2]    a2=[13.0,26.0,39.0,52.0,78.0,104.0,117.0,130.0]    a22=[14.4,28.9,43.3,57.8,86.7,115.6,130,144.4]    result_list = []    print inp_rate    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:            result_list.append(0)        print(result_list)輸出如下:['65.0', '144.4', '72.2', '72.2'][0, 0, 0, 0]由于列表項存在于 a1,a11,a2,a22 中,無法理解為什么索引為 0!
查看完整描述

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]


查看完整回答
反對 回復 2022-07-05
?
翻過高山走不出你

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。


查看完整回答
反對 回復 2022-07-05
  • 2 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號