为了账号安全,请及时绑定邮箱和手机立即绑定

在 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 关注
  • 223 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号