Python-分类数字



我在名为avaibalibility_365的数据中有一个列,该列包含0到365之间的数字。我想要一个python代码,该代码将数字分类为1和3之间。因此,如果数字数字在0到122之间,应将其转换为1,数字123-245应该转换为2和245-365转换为3。请感谢任何帮助,谢谢。

您的最后一个条件应为246-365,否则应以2和3替换245,这是不可能的。这是规格中的错误。

如果检查:

您需要进行三个
def convert_365(availability_365: list, a=1, b=2, c=3):
    converted = []
    for number in availability_365:
        if number < 123:
            converted.append(a)
        elif 122 < number <= 245:
            converted.append(b)
        elif number >= 246:
            converted.append(c)
    return converted
#  Making a list from 0 to 365
availability_365 = list(range(0, 366))
print(convert_365(availability_365))
#  Checking the boundaries
print(convert_365(availability_365)[0] == 1)
print(convert_365(availability_365)[122] == 1)
print(convert_365(availability_365)[123] == 2)
print(convert_365(availability_365)[245] == 2)
print(convert_365(availability_365)[246] == 3)
print(convert_365(availability_365)[365] == 3)

您所描述的基本上是舍入的。整数除法几乎直接给出了所需的结果,您只需要移动1。

def categorise(num):
    return (num // 123) + 1
print(categorise(0))    # 1
print(categorise(122))  # 1
print(categorise(123))  # 2
print(categorise(245))  # 2
print(categorise(246))  # 3
print(categorise(365))  # 3

最新更新