Python列表从大到小

为了显示时更直观。在显示时,需要将列表的所有数字按从大到小的顺序进行显示。假设新数字为8,显示如下,

lst=[10,9,8, 新数字,7,6,5,4,3, 2]

lst=[10,9,8 , float(input('请输入新数据  '))  ,7,6,5,4,3, 2]
lst.sort(reverse=True)
print(lst)

效果

img


num_list = []  
while True:  
    num = input("请输入一个包含数字的列表(输入 q 退出):")  
    if num == 'q':  
        break  
    num_list.append(int(num))  
  
if not num_list:  
    print("没有输入任何数字")  
else:  
    max_num = float('-inf')  
    for num in num_list:  
        if num > max_num:  
            max_num = num  
    print("每个数字及其之前的最大数字为:")  
    for num, max_num in zip(num_list, reversed(max_num)):  
        print(f"{num}: {max_num}")

创建一个空列表 num_list 来存储用户输入的数字。然后进入一个无限循环,直到用户输入了 q 退出。

在每次循环中,提示用户输入一个包含数字的列表,并将其添加到 num_list 中。如果用户输入了 q,则退出循环。

如果 num_list 为空,则说明用户没有输入任何数字,程序将打印一条相应的消息。否则将遍历 num_list 中的每个数字,并将其与 max_num 变量进行比较。如果该数字大于 max_num,则将其更新为 max_num。最后打印一个包含每个数字及其之前的最大数字的消息。

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7690193
  • 这篇博客也不错, 你可以看下编写函数,接收一个包含若干整数的列表参数 lst,返回一个元组,其中第一个元素为列表 lst中的最小值,其余元素为最小值在列表 lst中的下标。Python3
  • 以下回答由chatgpt基于相关博客总结生成:

    可以使用列表的sort()方法进行从大到小的排序,然后再用insert()方法将新数字8插入到排好序的列表中。具体实现步骤如下:

    1. 将新数字8添加到列表lst中,可以使用append()方法或者直接在定义列表的时候加入,即lst=[10,9,8,7,6,5,4,3,2]

    2. 对lst列表进行从大到小的排序,可以直接使用sort()方法,参数reverse=True表示降序排序,即lst.sort(reverse=True)

    3. 使用insert()方法将新数字8插入到排好序的列表中,插入位置可以通过循环遍历找到,或者使用内置函数bisect模块实现自动查找插入位置并插入。这里给出使用bisect模块实现的示例代码:

    import bisect
    
    lst = [10,9,8,7,6,5,4,3,2]
    new_num = 8
    
    # 添加新数字
    lst.append(new_num)
    
    # 对列表进行降序排序
    lst.sort(reverse=True)
    
    # 使用bisect模块查找新数字的插入位置并插入
    insert_pos = bisect.bisect(lst, new_num, 0, len(lst))
    lst.insert(insert_pos, new_num)
    
    print(lst)
    

    运行结果为:[10, 9, 8, 8, 7, 6, 5, 4, 3, 2],即排好序并插入新数字8后的列表。