Python 列表排序

  • Post author:
  • Post category:python



题目描述:


每次随机生成1个[-100,100]之间的整数,共生成10个整数加到列表中,对列表元素进行排序,使输出结果为:

  • 正数在前,从大到小排列,
  • 负数在后,从小到大排列。




一、生成随机列表

随机从-100到100之间抽取10个数,生成一个列表。

list=[]
for i in range(10):
    list.append(random.randint(-100,100))

这只是一种方法,生成指定范围正负列表方法详见:

相关资源:

Python生成指定范围数字正数和负数列表(list)



二、正负数分离

将列表中的正数和负数分开。

list1=[]
list2=[]
for j in list:
    if j>0:
        list1.append(j)
    else:
        list2.append(j)



三、列表排序

将得到的两个列表分别按照题目要求排序,正数从大到小排列,负数从小到大排列。再把负数列表加到正数列表之后。

list1.sort(key=lambda x: x,reverse=True)
# print(list1)
list2.sort(key=lambda x: x)
# print(list2)
list1.extend(list2)

由此,便可得到一个正数在前,从大到小排列,负数在后,从小到大排列的新列表了。



附录

完整代码:

import random
list=[]
for i in range(10):
    list.append(random.randint(-100,100))
print('list =',list)
list1=[]
list2=[]
for j in list:
    if j>0:
        list1.append(j)
    else:
        list2.append(j)

list1.sort(key=lambda x: x,reverse=True)
# print(list1)
list2.sort(key=lambda x: x)
# print(list2)
list1.extend(list2)
print('new_list =',list1)



版权声明:本文为zibery原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。