排序

作者: 泡菜鸡丁 | 来源:发表于2019-11-11 14:32 被阅读0次

1.sort方法

python内置了sort方法,可以很方便地对某个list进行排序

2.自定义排序(例如,按关键词的权重排序,按人的年龄排序,等等)

若list中每个元素都是2-tuple,tuple中第一个元素为string类型的keyword,第二个元素为该字符串对应的权重(int类型),希望权重排序(从高到低)

例如:l = [("a",4),("b",2),("c",8),("d",1)]

l.sort( key= lambda d:-d[-1])

#负号表示倒序,正号表示正序

print(l)

#打印:[("c",8),("a",4),("b",2),("d",1)]

3. dict排序

对字典的排序,因为每一个项包括一个键值对,所以要选择可比较多键或值进行排序

sort(iterable[,cmp[,key[,reverse]]])

例如:d = {"ok":1,"no":2}

# 对字典按键排序,用元组列表的形式返回

print(sorted(d. items(), key= lambda a:a[0]))

print( sorted(d))

# [("no",2),("ok",1)]

# [" no"," ok"]

注意:print(d)打印原字典,并未发生变化

对原字典若按照值排序,用元组列表形式返回,排序后再转成字典,则无法保证排序。

4.类排序

class test:

    def __init__(self,a,b):

        self.a = a

        self.b =

test1 = test(5,25)

test2 = test(50,35)

test3 = test(10,15)

tests = [test1,test2,test3]

# 以key来排序

result = sorted(tests,key=lambda d:d.a)

for item in result:

    print("a:%s" % item.a)

# 遍历原资料,顺序未有变化

for item in result:

    print("a:%s" % item.a)

注:在python中对列表、元组、字典等内置的数据结构的处理事很方便的事情。python借鉴lisp中的很多函数式计算方式来处理列表,可以极大的简化我们的代码。

①set():将元组、列表转换成没有重复项的集合

②list():将集合、元组转换成列表

③tuple():将集合、列表转换成元组

④map(func,list):将list的每一个元素传递给func的函数,这个函数有一个参数,且返回一个值,map将每一次调用函数返回的值组成一个新的列表返回。

⑤filter(func,list):将list的每一个元素传递给func的函数,这个函数有一个参数,返回bool类型的值,filter将返回true的元素组成新的列表

⑥reduce(func,list):将list的元素,挨个取出和下一个元素通过func计算后将结果和再下一个元素继续计算。

相关文章

  • 【恋上数据结构与算法二】(一)排序(Sorting)

    排序方法 冒泡排序 选择排序 堆排序 插入排序 归并排序 快速排序 希尔排序 计数排序 基数排序 桶排序 初识排序...

  • 排序-冒泡排序

    排序系列传递门 排序—选择排序排序—快速排序排序—插入排序排序-希尔排序(待完善)排序—归并排序(待完善)排序—基...

  • 排序

    冒泡排序: 冒泡排序 选择排序: 插入排序: 希尔排序: 归并排序: 快速排序: 堆排序: 计数排序: 桶排序: ...

  • Java | 10种排序算法

    冒泡排序 选择排序 插入排序 希尔排序 计数排序 基数排序 堆排序 归并排序 快速排序 桶排序

  • 常见的排序

    冒泡排序: 选择排序: 插入排序: 快速排序: 希尔排序: 归并排序: 堆排序: 计数排序: 桶排序: 基数排序:

  • 002--20200409刷题

    冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 计数排序 桶排序 基数排序

  • 排序

    排序 符号:Θ 插入排序 选择排序 堆排序 归并排序 冒泡排序 快速排序 桶排序 基数排序 计数排序 插入排序 插...

  • 排序 -- 选择/插入

    聊聊排序吧 冒泡排序 选择排序 插入排序 快速排序 归并排序 计数排序 桶排序 堆排序 本篇 选择排序与插入排序 ...

  • 前端基础整理 | 算法基础

    排序算法 冒泡排序 选择排序 插入排序 希尔排序 归并排序 堆排序 快速排序

  • Java 常见的 8 种排序算法(内排序)

    排序分类 内部排序 插入排序:直接插入排序、希尔排序 交换排序:冒泡排序、快速排序 选择排序:直接选择排序、堆排序...

网友评论

      本文标题:排序

      本文链接:https://www.haomeiwen.com/subject/lkstictx.html