Python数字列表按范围汇总

Python数字列表按范围汇总,python,python-3.x,list,Python,Python 3.x,List,我有一个数字列表,我想打印一个列表,将它们汇总到各个范围。比如说 输入 number\u list=[1,2,3,5,7,9,10,11] 输出 ['1到3',5,7,'9到11'] 我的方法- temp_list = [] final_list = [] number_list = [1,2,3,5,7,9,10,11] for i in range(len(number_list)): if number_list[i-1] not in temp_list or i == 0:

我有一个数字列表,我想打印一个列表,将它们汇总到各个范围。比如说

输入

number\u list=[1,2,3,5,7,9,10,11]

输出

['1到3',5,7,'9到11']

我的方法-

temp_list = []
final_list = []
number_list = [1,2,3,5,7,9,10,11]

for i in range(len(number_list)):
   if number_list[i-1] not in temp_list or i == 0:
      temp_list.append(number_list[i])
   else:
      if number_list[i] - number_list[previous_i] != 1:
         temp_list.append(previous_item)
         if temp_list[0] != temp_list[1]:
            final_list.append(f'{temp_list[0]} to {temp_list[1]}')
         else:
            final_list.append(temp_list[0])
         temp_list = []
      else:
         final_list.append(number_list[i])
   previous_item = number_list[i]
   previous_i = i

print (final_list)
# O/P : [2, '1 to 3', 7, 11] which should be ['1 to 3',5,7,'9 to 11']
但我仍然没有得到我想要的输出。任何帮助都将不胜感激

您可以使用:

输出:

['1 to 3', 5, 7, '9 to 11']

谢谢然而9似乎出现了两次@TanishqChaudhary现在检查我的答案
['1 to 3', 5, 7, '9 to 11']