我在名为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