python排序问题_python 排序问题

在排序问题中,常见的就是下面几类:

1、从小到大 或  从大到小

2、元素反转

3、列表元素去重。

下面分别来看在python中如何实现:

一、从小到大 或  从大到小

可以使用的函数:list.sort()  、 sorted(list) 两个函数。区别如下:

a、list.sort()方法来排序,此时list本身将被修改。通常此方法不如sorted()方便,但是如果你不需要保留原来的list,此方法将更有效。

b、list.sort()方法仅被定义在list中,相反地sorted()方法对所有的可迭代序列都有效。

1、使用sorted(list)排序

list0 = [1,2,4,5,7,9,2,4,6,44,7,1]

# 排序操作:

# 1.1 从小到大

list1_1 = sorted(list0)

print('原列表:\n',list0)

print('sorted()从小到大:\n',list1_1)

# 1.2 从大到小

list1_2 = sorted(list0,reverse=True)

#list1_2.sort(reverse=True)

print('原列表:\n',list0)

print('sorted()从大到小:\n',list1_2)

运行结果:

原列表:

[1, 2, 4, 5, 7, 9, 2, 4, 6, 44, 7, 1]

sorted()从小到大:

[1, 1, 2, 2, 4, 4, 5, 6, 7, 7, 9, 44]

原列表:

[1, 2, 4, 5, 7, 9, 2, 4, 6, 44, 7, 1]

sorted()从大到小:

[44, 9, 7, 7, 6, 5, 4, 4, 2, 2, 1, 1]

2、使用 list.sort() 排序

list0 = [1,2,4,5,7,9,2,4,6,44,7,1]

# 排序操作:

# 1.1 从小到大

list1_1 = list0[:]

list1_1.sort()

print('原列表:\n',list0)

print('sort()从小到大:\n',list1_1)

# 1.2 从大到小

list1_2 = list0[:]

list1_2.sort(reverse=True)

#list1_2.sort(reverse=True)

print('原列表:\n',list0)

print('sort()且从大到小:\n',list1_2)

运行结果:

原列表:

[1, 2, 4, 5, 7, 9, 2, 4, 6, 44, 7, 1]

sort()从小到大:

[1, 1, 2, 2, 4, 4, 5, 6, 7, 7, 9, 44]

原列表:

[1, 2, 4, 5, 7, 9, 2, 4, 6, 44, 7, 1]

sort()且从大到小:

[44, 9, 7, 7, 6, 5, 4, 4, 2, 2, 1, 1]

二、反转排序

使用 reversed(list) 函数来实现,但是一定要注意,要使用  list(reversed(list_name)) 的形式才能输出 列表

list0 = [1,2,4,5,7,9,2,4,6,44,7,1]

# reversed 必须跟 list一起用,输出的结果才是列表

list1_3 = list(reversed(list0))

print('原列表:\n',list0)

print('list(reversed())操作之后:\n',list1_3)

运行结果:

原列表:

[1, 2, 4, 5, 7, 9, 2, 4, 6, 44, 7, 1]

list(reversed())操作之后:

[1, 7, 44, 6, 4, 2, 9, 7, 5, 4, 2, 1]

三、列表去重

用到  set(list) 函数

list0 = [1,2,4,5,7,9,2,4,6,44,7,1]

# set 必须跟 list一起用,输出的结果才是列表

list2 = list(set(list0)) # 改变了列表顺序的去重方法

list2_1 = sorted(set(list0),key=list0.index) # 不改变列表顺序的去重方法

print('原列表:\n',list0)

print('list(set())操作之后(改变列表元素顺序):\n',list2)

print('list(set())操作之后(不改变列表元素顺序):\n',list2_1)

运行结果:

原列表:

[1, 2, 4, 5, 7, 9, 2, 4, 6, 44, 7, 1]

list(set())操作之后(改变列表元素顺序):

[1, 2, 4, 5, 6, 7, 9, 44]

list(set())操作之后(不改变列表元素顺序):

[1, 2, 4, 5, 7, 9, 6, 44]

注意:list.sort()还有很多用法,可以参考

https://www.runoob.com/python/att-list-sort.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值