精华内容
下载资源
问答
  • Python中常用的排序方法sorted()sorted()函数是Python中的内置函数,它可以从一个可迭代对象构建出一个新的列表。a = [4, 28, 3, 22, 9, 6]b = sorted(a)print("a:", a) # 原列表print("b:", b)...

    Python中常用的排序方法

    sorted()

    sorted()函数是Python中的内置函数,它可以从一个可迭代对象构建出一个新的列表。

    a = [4, 28, 3, 22, 9, 6]

    b = sorted(a)

    print("a:", a) # 原列表

    print("b:", b) # 排序后的列表

    结果如下

    a: [4, 28, 3, 22, 9, 6]

    b: [3, 4, 6, 9, 22, 28]

    可以看出,用sorted()函数排序后原列表元素顺序不变,而新的列表则按升序排序。

    如果只是做简单的列表升序排序,可以直接使用sorted()方法来实现。

    list.sort()

    list.sort()是Python列表的一个内置方法,它跟sorted()方法不同的是,它会直接修改原列表。

    a = [6, 3, 9, 7, 11, 2]

    a.sort()

    print(a)

    结果如下

    [2, 3, 6, 7, 9, 11]

    原列表中元素的顺序发生了改变。

    reversed()

    reversed()函数返回一个反转的迭代器

    a = [6, 3, 9, 7, 11, 2]

    b = reversed(a) # 反转的迭代器

    c = list(reversed(a)) # 迭代器转换成列表

    print("a:", a)

    print("b:", b)

    print("c:", c)

    结果如下

    a: [6, 3, 9, 7, 11, 2]

    b:

    c: [2, 11, 7, 9, 3, 6]

    reversed()函数用在列表中会返回一个迭代器对象,可以使用list()方法将迭代器转换为列表

    list.reverse()

    list.reverse()也是Python列表的一个方法,用于反向列表的元素,和reversed()函数差不多

    a = [6, 3, 9, 7, 11, 2]

    a.reverse()

    print(a)

    结果如下

    [2, 11, 7, 9, 3, 6]

    类型list.sort(),它也会直接改变原列表的元素顺序

    random.shuffle()

    在random库中有一个shuffle()方法可以将列表的所有元素进行随机排序

    a = [1, 2, 3, 4, 5, 6]

    random.shuffle(a)

    print(a)

    结果如下

    [4, 3, 6, 2, 1, 5]

    原列表的元素顺序被随机打乱

    深入探讨sorted()函数

    上面介绍了Python中常用的排序方法,其中sorted()方法还有很多比较实用的地方。

    重要参数说明

    sorted(iterable, key=None, reverse=False)

    其中:

    iterable -- 可迭代对象

    key -- 关键函数

    reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

    对可迭代对象进行排序

    list.sort()方法只是为列表定义的,而sorted()方法可以接受任何可迭代对象。

    我们尝试对一个字典进行sorted()排序

    a = {4: "four", 3: "three", 9: "nine", 6: "six"}

    b = sorted(a)

    print(b)

    结果如下

    [3, 4, 6, 9]

    得到的结果是一个列表(其实就是dict.keys()列表,字典中的键列表)

    实际上,sorted()函数是不能对字典进行排序的,因为在Python中字典是无序的。

    如果实在想得到一个有序字典,你可以使用collections模块中OrderedDict()来生成一个有序字典。

    关键函数

    sorted()中的形参key是用于指定排序前对列表中的每个元素进行调用的函数。

    a = "Whatever Is worth Doing is Worth doing well"

    b = sorted(a.split(), key=str.lower)

    print(b)

    结果如下

    ["Doing", "doing", "is", "Is", "well", "Whatever", "worth", "Worth"]

    上面的key=str.lower是先对列表中的每一个变成小写字母的单词进行比较,再对原列表进行升序排序。

    key形参的值是一个函数,它接收一个参数并返回一个用于排序的键

    def last(t):

    """t参数是一个元组,返回元组中的最后一个元素"""

    return t[-1]

    a = [

    ("Tony", "A", 90),

    ("Lisa", "C", 88),

    ("Jack", "B", 95),

    ]

    b = sorted(a, key=last)

    print(b)

    结果如下

    [("Lisa", "C", 88), ("Tony", "A", 90), ("Jack", "B", 95)]

    以上例子的key值是一个last函数,用于获取元组中最后一个元素,而a列表中的元素是格式相同的元组,

    因此通过last函数可以获取列表中的每一个元组最后一个元素,也就是90, 88, 95这三个值来比较,升序排序后就得到最后的结果。

    同样,我们的key值也可以使用lambda表达式形式,简化以上过程如下

    a = [

    ("Tony", "A", 90),

    ("Lisa", "C", 88),

    ("Jack", "B", 95),

    ]

    b = sorted(a, key=lambda t: t[-1])

    print(b)

    结果跟上面的一样

    上面只是对形参key的使用进行了简单的演示,你也可以用在其他方面,如一些具有命名属性的对象。

    还可以使用Operator模块函数来使访问器功能更容易、更便捷,这里就不过多演示了,有兴趣可以自行搜索相关资料。

    升序和降序

    最后就是reverse参数,用于决定列表升序还是降序排序。

    a = [4, 3, 9, 6, 28, 22]

    b = sorted(a, reverse=True)

    print(b)

    结果如下

    [28, 22, 9, 6, 4, 3]

    设置reverse=True就可以对列表进行降序排序。

    展开全文
  • 在信息检索或top-n推荐中,我们会为用户推荐一个有序推荐列表,这里的“有序”体现在列表中前面的产品相比于列表后面的产品被算法预测为更容易被用户选择,这要求我们按每个产品出现的概率产品进行排序。...

    在信息检索或top-n推荐中,我们会为用户推荐一个有序产品列表,这里的“有序”体现在列表中前面的产品相比于列表后面的产品被算法预测为更容易被用户选择,这要求我们按每个产品出现的概率对产品进行排序。可以参考以下示例:

    # 按列表a中元素的值进行排序,并返回元素对应索引序列
    a = [1, 3, 4, 5, 2, 7, 9]
    print('a:', a)
    sorted_id = sorted(range(len(a)), key=lambda k: a[k], reverse=True)
    print('元素索引序列:', sorted_id)

    结果为: 

    a: [1, 3, 4, 5, 2, 7, 9]
    元素索引序列: [6, 5, 3, 2, 1, 4, 0]

    可以看到这里用到了sorted函数,改函数可以指定键对可迭代对象进行排序,功能比较强大。关于该函数的具体使用方法可以参考:

    Python3 sorted() 函数

     

    展开全文
  • python-列表元素排序

    2021-02-18 22:46:48
    很多情况下我们得到一个列表后,我们需要这个列表中的元素进行特殊排序以实现我们的目的,不同的目的需要不同的排序方法。本文就是介绍Python列表的成员函数。sort(),sorted(),reverse(). 1. sort()函数 sort()...

    很多情况下我们得到一个列表后,我们需要对这个列表中的元素进行特殊排序以实现我们的目的,不同的目的需要不同的排序方法。本文就是介绍Python中列表的成员函数:sort(),sorted(),reverse().
    1. sort()函数

    sort()的作用是将列表中的元素按照单调递增排序。
    代码:

    cities=['Beijing','Chengdu','Shanghai','Chongqin']
    cities.sort()
    print(cities)
    

    运行结果:

      ['Beijing', 'Chengdu', 'Chongqin', 'Shanghai']
    

    可以看到,sort()函数改变了原列表中元素的排列顺序。此外,在sort()函数中,字符串间大小的比较则按照字符的Unicode码逐一比较
    如果想要实现将列表中的函数单调递减排列,则加上参数reverse=True。
    代码如下:

     cities=['Beijing','Chengdu','Shanghai','Chongqin']
     cities.sort(reverse=True)
     print(cities)
    

    运行结果:

    ['Shanghai', 'Chongqin', 'Chengdu', 'Beijing']
    

    如果想要按照字符串的长度排序,可以加参数key=len:
    代码如下:

      cities=['Beijing','Chengdu','Shanghai','Chongqin']
      cities.sort(key=len)
      print(cities)
    

    运行结果:

    ['Beijing', 'Chengdu', 'Shanghai', 'Chongqin']
    

    2. sorted()函数

    与sort()函数不同的是,sorted()函数会生成一个新的列表,不会改变原列表的顺序。
    与sort()函数相同的是,sorted()函数也可以使用reverse和key参数。
    代码如下:

      cities=['Beijing','Chengdu','Shanghai','Chongqin']
      a=sorted(cities,reverse=True)
      b=sorted(cities)
      print(cities)
      print(a)
      print(b)
    

    运行结果:

    ['Beijing', 'Chengdu', 'Shanghai', 'Chongqin']
    ['Shanghai', 'Chongqin', 'Chengdu', 'Beijing']
    ['Beijing', 'Chengdu', 'Chongqin', 'Shanghai']
    

    3. reverse()函数

    reverse()的作用是将列表中的元素顺序倒过来 。
    代码如下:

      cities=['Beijing','Chengdu','Shanghai','Chongqin']
      cities.reverse()
      print(cities)
    

    运行结果:

    ['Chongqin', 'Shanghai', 'Chengdu', 'Beijing']
    
    展开全文
  • Python 列表元素排序

    2020-02-27 10:24:06
    对列表元素进行排序 使用方法sort()对列表进行永久性排序,如fruits.sort() 使用函数sorted ()对列表进行临时排序,如sorted(fruits) 详细例子如下: 1. 使用方法sort()对列表进行永久性排序 fruits =[...

    对列表元素进行排序

    1. 使用方法sort()对列表进行永久性排序,如fruits.sort()
    2. 使用函数sorted ()对列表进行临时排序,如sorted(fruits)

    详细例子如下:
    1. 使用方法sort()对列表进行永久性排序

    fruits =["apples", "pear", "orange", "cherry"]
    fruits.sort() 
    print(fruits)
    fruits.sort(reverse=True)  //与字母相反的顺序打印列表
    print(fruits)
    // 输出结果为
    ['apples', 'cherry', 'orange', 'pear']
    ['pear', 'orange', 'cherry', 'apples']
    

    2. 使用函数sorted ()对列表进行临时排序

    fruits =["apples", "pear", "orange", "cherry"]
    print(sorted(fruits))
    print(sorted(fruits,reverse=True))  //与字母顺序相反的顺序打印列表
    print(fruits)
    输出结果为:
    ['apples', 'cherry', 'orange', 'pear']
    ['pear', 'orange', 'cherry', 'apples']
    ['apples', 'pear', 'orange', 'cherry']
    
    展开全文
  • 学会列表排序相关操作的使用方法,实现对列表元素排序。一般情况下我们创建的列表中的元素可能都是无序的,但有些时候我们需要对列表元素进行排序。 例如,我们想将参加会议的专家名单guests列表中的五个名字...
  • python对元素进行排序

    2020-04-23 14:47:15
    python对元素进行排序列表排序方法sort()内置排序函数sorted()字符串元组列表借助operator模块的itemgetter排序面试题 本文采用版本python3.5 列表排序方法sort() list.sort(key=None, reverse=False) key – ...
  • Python 列表元素排序

    2021-04-29 16:36:52
    一般情况下我们创建的列表中的元素可能都是无序的,但有些时候我们需要对列表元素进行排序。 例如,对参加会议的专家名单,我们需要根据专家姓名按照首字母从小到大或者从大到小的顺序进行排序。 例如我们想将如下的...
  • 对列表中的字典元素排序 对json进行比较(忽略列表中字典的顺序) 回到顶部 问题起源 json对象a,b a = '{"ROAD": [{"id": 123}, {"name": "no1"}]}' b = '{"ROAD": [{"name": "no1"}, {"id": 123}]}' 特点:a,b...
  • python列表元素排序与反转

    千次阅读 2019-03-17 16:20:30
    python语言中的列表排序方法有三个:reverse反转排序、sort排序、sorted可以获取...reverse() 函数没有返回值,但是会对列表元素进行反向排序。 list = [2, 1, 3, 5, 4] list.reverse() print(list) #[4, 5, 3, ...
  • 前言:排序(Sorting) 是计算机程序设计中的一种重要操作,它...通过对列表里的元素大小排序进行阐述。一,选择排序法 从第一个位置开始比较,找出最小的,和第一个位置互换,开始下一轮。 lt = [3, 5, 2, 1,...
  • 要求:persons列表里的数据按照年龄降序排列 class Person(object): def init(self, name, age): self.name = name self.age = age p1 = Person(‘zhangsan’, 18) p2 = Person(‘lisi’, 20) p3 = Person(‘jack’, ...
  • 本文实例讲述了Python对列表排序的方法。分享给大家供大家参考。具体分析如下: 1、sort()函数 sort()函数使用固定的排序算法对列表排序。sort()函数对列表排序时改变了原来的列表,从而让其中的元素能按一定的顺序...
  • 前言 排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或...通过对列表里的元素大小排序进行阐述。 原文地址:https://blog.zeruns.tech/index.php/archives/297/ 一、选择排序法 选择...
  • 主要介绍了Python编程对列表中字典元素进行排序的方法,涉及Python针对列表及字典元素的遍历、读取、转换相关操作技巧,需要的朋友可以参考下
  • 根据第二个元素对列表排序: def takeSecond(elem): return elem[1] random=[(2, 2), (3, 4), (4, 1), (1, 3)] random.sort(key=takeSecond) print("排序列表:", random) 排序列表: [(4, 1), (2, 2), (1, 3), ...
  • 这次代码主要是实现列表的排序,使用sort函数实现,sort函数是对列表中的元素按照特定顺序进行排序,默认reverse,为false,从小到大排序, 如果指定reverse=True,从大到小。 语法格式:l.sort(),希望对你们有所...
  • 1. 按照字典元素中的t值的下标大小进行排序 由于t值是字符串类型,那么需要将下标截取出来,然后再name进行排序 a = [ { "value": "用途", "name": "t4" }, { "value": "期初累计摊额", "name": "t10...
  • Python学习(4)列表:列表的创建与删除、访问列表元素、遍历列表、添加修改删除列表元素对列表进行统计计算、对列表进行排序、列表推导式 4.2.1列表的创建与删除 1.使用赋值运算符直接创建列表 用赋值运算符“=”...
  • sorted() 可保留列表元素原来排列顺序,同时以特定的顺序呈现它们。 reverse() 轻松反转列表元素的排列。 注:如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值...
  • 列表元素排序有两种方式:sort()函数、sorted()内置函数;并且不能元素类型混合的列表进行排序。 (1)sort()函数默认从小到大进行升序排序,指定reverse=True时,进行降序排序。 (2)sorted()内置函数默认从小...
  • python嵌套列表元素排序方法

    千次阅读 2019-07-30 09:27:00
    假设有一个列表列表中嵌套元组,每个元组的第一个值是水果名称,第二个是喜爱...问题:按照喜爱程度列表排序 fruit = [('apple',7),('orange',4),('melon',9),('pear',6)] 方法一: import operator fruit...
  • Python如何对列表进行排序

    千次阅读 2020-01-30 17:09:51
    列表排序有两种方式,一种是列表自带的方式 sort,一种是...由字典构成的列表,根据字典元素中的age字段进行排序: items = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}, {"name": 'cater', 'age...
  • 因为在python中,*new_var = *list 造成的结果是new_var与list共同指向同一个列表,所以在对列表元素进行排序操作后找到原来的排序顺序是非常困难的一件事,同时增加一倍内存的损耗也十分损耗,所以要做出改变。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,028
精华内容 411
关键字:

python对列表元素排序

python 订阅