可以使用Python内置的函数和列表解析来解决这个问题。以下是一种解决方案:
def sort_into_lists(lst):
max_val = max(lst)
min_val = min(lst)
# 使用列表解析生成子列表
result = [[] for i in range(min_val, max_val+1)]
for val in lst:
result[val-min_val].append(val)
return result
这个函数接收一个包含整数的列表,并将其按照数值大小分成多个子列表,每个子列表包含相同数值的元素。该函数首先找到列表中的最大和最小值,然后创建一个空的列表,用于将元素分配到正确的子列表中。使用for循环遍历列表中的每个元素,并使用列表解析生成子列表。最后,将每个元素添加到其相应的子列表中,最终返回一个包含所有子列表的列表。
下面是一个使用示例:
numbers = [5,3,2,1,4,5,3,2,1,7,8,6,5]
lists = sort_into_lists(numbers)
print(lists)
输出为:
[[1, 1], [2, 2], [3, 3], [4], [5, 5, 5], [6], [7], [8]]
该结果表示原始列表中的1出现了两次,2出现了两次,依此类推。
上一篇:按照数值或百分比计算
下一篇:按照数值列标题重新排序列