精华内容
下载资源
问答
  • python 列表排序

    千次阅读 2018-08-27 00:28:07
    sorted()函数可以按照长短,大小,英文字母的顺序给每个列表的元素进行排序 示例: list = [1,3,4,2,5,2] print(sorted(list)) 使用默认参数reverse后列表可以按照逆序整理: list = [1,3,4,2,5,2] print...

    sorted()函数可以按照长短,大小,英文字母的顺序给每个列表的元素进行排序

    示例:

    list = [1,3,4,2,5,2]
    print(sorted(list))

    使用默认参数reverse后列表可以按照逆序整理:

    list = [1,3,4,2,5,2]
    print(sorted(list))
    print(sorted(list,reverse=1))

     

    sorted函数并不会改变列表本身,可以将其看作先对列表进行复制,在进行顺序的整理:

    list = [1,3,4,2,5,2]
    print(sorted(list))
    print(sorted(list,reverse=1))
    print(list)

     

     

    展开全文
  • 关于Python列表排序

    2020-12-21 10:25:07
    关于Python列表排序 sort排序方法 ​ 这个方法可以对列表元素进行排列(默认正向排序),排序后生成的新列表会对原列表进行覆盖(但其id不变),所以sort排序方法会直接修改原列表的排序。 a =[1,3,787,33,86,99] a...
  • Python列表排序 list.sort方法和内置函数sorted

    万次阅读 多人点赞 2019-05-18 15:17:54
    Python列表排序 list.sort方法和内置函数sorted 很多时候我们获取到一个列表后,这个列表并不满足我们的需求,我们需要的是一个有特殊顺序的列表. 这时候就可以使用list.sort方法和内置函数sorted,本文就是介绍list....

    Python列表排序 list.sort方法和内置函数sorted

    很多时候我们获取到一个列表后,这个列表并不满足我们的需求,我们需要的是一个有特殊顺序的列表.

    这时候就可以使用list.sort方法和内置函数sorted,本文就是介绍list.sort方法和sorted内置函数的使用方法和区别.

    一、list.sort方法

    list.sort方法会就地排序列表,也就是说不会把原列表复制一份。这也是这个方法的返回值是None的原因,提醒您本方法不会新建一个列表。

    在这种情况下返回None其实是Python的一个惯例:如果一个函数或者方法对对象进行的是就地改动,那它就应该返回 None,好让调用者知道传入的参数发生了变动,而且并未产生新的对象。

    来看一下代码:

    # coding=utf-8
    list_a = [1, 2, 8, 3, 7, 9, 5, 7]
    # sort()方法没有返回值
    list_b = list_a.sort()
    print("list_a: ", list_a)
    print('list_b: ', list_b)

    运行结果:

    list_a:  [1, 2, 3, 5, 7, 7, 8, 9]
    list_b:  None

    用返回None来表示就地改动这个惯例有个弊端,那就是调用者无法将其串联起来。而返回一个新对象的方法则正好相反,它们可以链式调用,从而形成连贯接口。

    二、sorted内置函数

    与 list.sort 相反,内置函数sorted会新建一个列表作为返回值。

    这个方法可以接受任何形式的可迭代对象作为参数,甚至包括不可变序列或生成器,而不管sorted接受的是怎样的参数,它最后都会返回一个列表。

    代码示例:

    list_c = [1, 2, 8, 3, 7, 9, 5, 7]
    # sorted内置函数会返回一个排序后的新列表
    list_d = sorted(list_c)
    print("list_c: ", list_c)
    print('list_d: ', list_d)

    运行结果:

    list_c:  [1, 2, 8, 3, 7, 9, 5, 7]
    list_d:  [1, 2, 3, 5, 7, 7, 8, 9]

    可以看到,使用内置函数sorted时,返回了一个新的列表,而原列表没有发生改变。

    这有两种好处:

    1.如果我们即需要使用原列表,也需要使用排序后的列表,或者说我们要将一个非列表的可迭代对象排序成列表,sorted都可以做到

    2.有返回值时,我们可以进行链式调用

    # 可以对非列表的可迭代对象排序生成列表
    str_e = 'python'
    list_e = sorted(str_e)
    print(list_e)
    
    # 链式调用
    str_f = '-'.join(sorted(str_e)).upper().split('-')
    print(str_f)
    

    运行结果:

    ['h', 'n', 'o', 'p', 't', 'y']
    ['H', 'N', 'O', 'P', 'T', 'Y']

    三、关键字参数key和reverse

    不管是 list.sort 方法还是 sorted 函数,都有两个可选的关键字参数:

    key
    接收一个只有一个参数的函数,这个函数会被用在序列里的每一个元素上,所产生的结果将是排序算法依赖的对比关键字。

    比如说,在对一些字符串排序时,可以用 key=str.lower 来实现忽略大小写的排序,或者是用 key=len 进行基于字符串长度的排序。key的默认值是恒等函数,也就是默认用元素自己的值来排序。

    reverse:

    如果被设定为 True,被排序的序列里的元素会以降序输出(也就是说把最大值当作最小值来排序),reverse的默认值是 False.

    phone = ('HUAWEI', 'OPPO', 'MI', 'MEIZU', 'VIVO')
    # 按长度进行排序
    phone_list = sorted(phone, key=len)
    print(phone_list)
    
    phone_list_re = sorted(phone, key=len, reverse=True)
    print(phone_list_re)

    运行结果:

    ['MI', 'OPPO', 'VIVO', 'MEIZU', 'HUAWEI']
    ['HUAWEI', 'MEIZU', 'OPPO', 'VIVO', 'MI']

    上面的代码中,第一次排序新建了一个按照长度排序的字符串列表。第二次排序是将按长度排序由升序变成了降序。

    细心的您应该可以发现,第二次的结果并不是第一次排序的结果的完全翻转。

    OPPO和VIVO的长度都是4,reverse=True后,它们的相对位置跟第一次排序是一样的。这是什么原因呢?

    sorted和list.sort背后的排序算法都是Timsort,它是一种自适应算法,会根据原始数据的顺序特点交替使用插入排序和归并排
    序,以达到最佳效率。

    Python的排序算法Timsort是稳定的(知道这一点就可以了),意思是就算两个元素比不出大小,在每次排序的结果里它们的相对位置是固定的。

    因为用到的排序算法是稳定的,也就是说在长度一样时,OPPO和VIVO的相对位置不会改变。

    关于list.sort()方法和sorted内置函数的使用,现在已经掌握了~

     

     

    展开全文
  • python 列表排序输出对应的索引

    千次阅读 2020-09-02 08:46:40
    例如输入列表: [8, 2, 4] 期望输出: [1, 2, 0] 一句话可以搞定: rank = [index for index, value in sorted(list(enumerate(input_list)), key=lambda x:x[1])] 实例: input_list = [8, 2, 4] rank = [index for ...

    例如输入列表: [8, 2, 4]
    期望输出: [1, 2, 0]
    一句话可以搞定:

    rank = [index for index, value in sorted(list(enumerate(input_list)), key=lambda x:x[1])]
    

    实例:

    input_list = [8, 2, 4]
    rank = [index for index, value in sorted(list(enumerate(input_list)), key=lambda x:x[1])]
    print(rank)  # rank = [1, 2, 0]
    
    展开全文
  • 本文给大家介绍的是Python列表排序方法中的reverse、sort、sorted操作方法,以及他们直接的区别介绍,有需要的小伙伴可以参考下。
  • python列表排序后返回索引排序

    千次阅读 2020-06-27 17:17:29
    sorted(range(len(lis)), key=lambda k: lis[k])

    sorted(range(len(lis)), key=lambda k: lis[k])

    展开全文
  • 手记-- encoding=utf-8 --python3代码import operator一. 按字典值排序(默认为升序)x = {1:2, 3:4, 4:3, 2:1, 0:0}sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1))print sorted_x[(0, 0), (2, 1), ...
  • python列表排序不改变顺序

    千次阅读 2019-12-19 13:16:36
    去重可以乱序 lis = [3, 1, 4, 3, 6, 3, 2, 4, 9, 1] lis2 = list(set(lis)) print(lis2) 去重不改变原始顺序 ...func2、func4 和 func5原理是一样的,先将列表去重,然后按原始列表到索引重新排序 from functo...
  • python 列表排序方法sort、sorted技巧篇

    万次阅读 2018-03-29 13:34:37
    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。1)排序基础简单的升序排序是非常容易的。只需要调用sorted()方法。它返回一个新的list,新的list的...
  • 深深入入了了解解python列列表表 LIST 这篇文章主要介绍了python列表 LIST的相关知识文中代码非常详细帮助大家更好的理解和学习感兴 的朋友可以了解下 Python 内置的四种常用数据结构 列表 list元组 tuple字典 dict...
  • 本文实例讲述了Python列表元素转为数字的方法。分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['2', '4', '1', '3'] 想要把每个元素转换为数字: numbers = [2, 4, 1, 3] 1. Python2.x,...
  • 本文实例讲述了Python编程对列表中字典元素进行排序的方法。分享给大家供大家参考,具体如下: 内容目录: 1. 问题起源 2. 对列表中的字典元素排序 3. 对json进行比较(忽略列表中字典的顺序) 一、问题起源 json...
  • python列表排序,字典排序,列表中的字典排序

    万次阅读 多人点赞 2019-05-13 13:19:20
    列表排序 方法1: 没有返回值 list1 = [2, 1, 4, 5, 3] print("最开始数据:{}".format(list1)) # 升序 list1.sort() print("升序后数据:{}".format(list1)) list1 = [2, 1, 4, 5, 3] print("最开始数据:{}"....
  • Python列表排序函数

    千次阅读 2017-08-31 19:24:00
    sort函数原地排序,直接改变输入的列表,而无返回值。x = [2, 1, 3] x.sort() print x # output: [1, 2, 3] print x.sort() # output: None若要实现赋值,则先把x的副本(一个新对象)赋值给一个变量,再排序,这样...
  • python列表排序方法

    千次阅读 2018-12-16 22:04:07
    使用Python内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。 sorted()方法: 简单的升序排序是非常容易的。只需要调用sorted()方法。它返回一个新的list,新的...
  • Python列表排序与倒序

    千次阅读 2018-12-19 13:15:16
    列表排序 sort() sorted() reverse() sort()的使用 letters = ['d','a','e','c','b'] print letters ['d','a','e','c','b'] letters.sort() print letters ['a','b','c','d','e'] sort()会自动...
  • Python列表排序方法

    万次阅读 多人点赞 2019-01-26 16:25:11
    一、sort()排序方法 # 这个方法会改变a自身 a = [7,5,9,3] # True为逆序,False为正序 a.sort(reverse = False) print(a) a.sort(reverse = True) ...# 用这个方法可以将排序后的列表赋值给其他列表 a = [7,5,...
  • python列表排序

    千次阅读 2013-07-17 11:19:08
    python列表排序 简单记一下python中List的sort方法(或者sorted内建函数)的用法。 关键字: python列表排序 python字典排序 sorted List的元素可以是各种东西,字符串,字典,自己定义的类等。 sorted函数用法...
  • #一维数组排序 arr = [1, 3, 5, 2, 4, 6] arr = np.array(arr) print arr print np.sort(arr)#或print np.sort(arr,axis=None) print (np.argsort(arr)) # 正序输出索引,从小到大 print (np.argsort(-arr)) # 逆序...
  • 列表内的元素,按照由小到大顺序进行排序。 使用sort()函数。 程序实例: list_val = [12,32,9,89,10,3,100,45,56] list_val.sort() print(list_val) 运行结果: 列表内的元素,按照由大到小顺序排序。 使用sort...
  • PTA Python 列表排序

    千次阅读 2018-12-18 23:49:57
    输入由10个整数构成的列表,编程只对列表中下标为偶数的元素进行升续排序,下标为奇数的元素保持不动。 输入格式: 输入列表。 输出格式: 输出排序后的列表。 输入样例: 在这里给出一组输入。例如: 52,49,80,36,14,...
  • python 列表多个条件排序

    千次阅读 2020-08-03 21:14:42
    这里主要用到的是 list.sort( key=None, reverse=False) key – 主要是用来进行比较的元素,只有一个参数,具体的函数的...现在有个列表 l1 = [{'star': 4, 'level': 30, 'cfgid': 2042302, 'name': '哈维尔'}, {'st
  • 需要的题量多的话建议购买付费专栏(包含上百道题目答案,并持续更新中)
  • 在信息检索或top-n推荐中,我们会为用户推荐一个有序推荐列表,这里的“有序”体现在列表中前面的产品相比于列表后面的产品被算法预测为更容易被用户选择,这要求我们按每个产品出现的概率对产品进行排序。...
  • 很多时候,我们需要对List进行排序Python提供了两个方法,对给定的List L进行排序: 方法1.用List的成员函数sort进行排序 方法2.用built-in函数sorted进行排序(从2.4开始) 这两种方法使用起来差不多,以第一种为...
  • python列表排序的一些问题

    千次阅读 2018-08-27 21:58:51
    列表嵌套怎么进行排序呢? 噔噔噔!!用lambda就可以很简洁的进行排序啦!下面介绍一下具体步骤: 这是一份班级学生的成绩信息集合:字段包括学号,姓名,语文成绩,数学成绩 item=[[101,'张三',80,75],[102,'...
  • Python列表中的列表进行排序

    千次阅读 2020-02-26 20:33:54
    之前写过一个对列表中的字典进行排序的文章,之所以又写是因为我确实遇到了这样的题目,如果要求数据按照一定的格式存储但是又不允许使用字典那该怎么办?下面是我的作业题:将学生信息存入但是要用列表存储,相应的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 150,408
精华内容 60,163
关键字:

python列表排序

python 订阅