如何有效地实施值分类(过滤)?

2024-06-26 11:17:29 发布

您现在位置:Python中文网/ 问答频道 /正文

spearate_list = [160, 170, 180, 190]

def whichgroup(value, spearate_list)
    if value < spearate_list[0]:
        return 0
    elif spearate_list[0] <= value and value < spearate_list[1]:
        return 1
    elif spearate_list[1] <= value and value < spearate_list[2]:
        return 2
    elif spearate_list[2] <= value and value < spearate_list[3]:
        return 3
    else:
        return 4

sepearte_list可以有不同的长度范围,比如说spearate_list=[50,60,70,80,90,100],我想实现这个pythonic和高效的方法

有什么建议吗


Tags: and方法returnifvaluedefpythonicelse
1条回答
网友
1楼 · 发布于 2024-06-26 11:17:29

我的建议不一定是最有效的,但有点像Python。首先,扩大你的列表,使之包含两个无穷大

separate_list = [-float('inf'), 160, 170, 180, 190, float('inf')]

现在,形成一个间隔列表,并检查您的值(例如,value=175)是否在任何间隔中(它必须正好在其中一个间隔中):

answer = [i for i,(x,y) in enumerate(zip(separate_list, separate_list[1:])) \
          if x <= value < y][0]
#2

相关问题 更多 >