python内置函数可以返回列表元组,python内置函数可以返回

  python内置函数可以返回列表元组,python内置函数可以返回

  Python list.sort方法和内置函数排序多次,我们得到一个列表后,这个列表不符合我们的需求。我们需要的是一份有特殊顺序的清单。

  此时可以使用list.sort方法和内置函数sorted。本文介绍了list.sort方法和排序内置函数的用法和区别。

  一、list.sort方法

  list.sort方法将对列表进行就地排序,也就是说,它不会复制原始列表。这就是为什么这个方法的返回值是None,提醒你这个方法不会创建新的列表。

  在这种情况下,返回None实际上是一个Python约定:如果函数或方法对对象进行了就地更改,它应该返回None,这样调用者就可以知道传递的参数已经更改,并且没有生成新的对象。

  看一下代码:

  # coding=UTF-8list _ a=[1,2,8,3,7,9,5,7] # sort()方法没有返回值list _ b=list _ a . sort()print( list _ a:,list _ a) print (list _ b)

  List _ a: [1,2,3,5,7,7,8,9] list _ b: None返回None以指示就地更改的约定有一个缺点,即调用者不能将它们连接起来。返回新对象的方法正好相反。它们可以被链式调用,从而形成一个连贯的接口。

  二、sorted内置函数

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

  这个方法可以接受任何形式的iterable对象作为参数,甚至是不可变的序列或生成器。不管sorted接受什么样的参数,它最终都会返回一个列表。

  代码示例:

  List _ c=[1,2,8,3,7,9,5,7] #排序的内置函数将返回一个新的排序列表List _ d=Sorted(list _ c)print( list _ c:,list _ c) print (list _ d:,list _

  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))。鞋帮()。拆分(“-”)打印

  [h , N , O , P , T , y][H , N , O , P , T , Y]三、关键字参数key和reverse

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

  key:

  接收只有一个参数的函数。这个函数将在序列中的每个元素上使用,结果将是排序算法所依赖的比较键。

  例如,在对一些字符串进行排序时,可以使用key=str.lower通过忽略大小写进行排序,或者使用key=len通过字符串长度进行排序。key的缺省值是一个identity函数,即默认情况下元素按自己的值排序。

  reverse:

  如果设置为True,排序后的序列中的元素将按降序输出(即最大值按最小值排序),reverse的默认值为False。

  Phone=(华为, OPPO , Mi ,魅族, vivo) #按长度排序phone _ list=sorted (phone,key=len)print(phone _ list)phone _ list _ re=sorted(phone,key=len,reverse=reverse)

  [mi , oppo , vivo ,魅族,华为] [华为,魅族, oppo , vivo , mi]在上面的代码中,第一次排序创建一个新的按长度排序的字符串列表。第二种排序是将按长度排序由升序改为降序。

  仔细看,你应该能发现第二个结果并不是第一个排序结果的完全反转。

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

  sorted和list.sort后面的排序算法是Timsort,这是一种自适应算法,根据原始数据的序列特征交替使用插入排序和返回边排序。

  顺序,以达到最佳效率。

  Python的排序算法Timsort是稳定的(就知道这个),也就是说即使两个元素大小不匹配,在每个排序结果中它们的相对位置也是固定的。

  因为使用的排序算法是稳定的,也就是说长度相同时,OPPO和VIVO的相对位置不会发生变化。

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

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 基本python内置函数eval作用,Python中eval函数
  • 基本python内置函数eval作用,Python中eval函数,python内置函数之eval函数详解
  • python内置函数及作用,举例说明Python中内置函数的应用和作用
  • jieba库是python内置函数库,可以直接使用,Python中jieba库
  • python divmod用法,python内置函数divmod
  • divmod在python中含义,python内置函数divmod
  • 查看python内置函数的类型,用什么命令,查看变量内存地址的python内置函数是什么
  • python中常见的内置函数,python内置函数及用法
  • python内置函数大全解释,python内置函数的使用方法
  • python内置函数大全及使用,python内置函数大全表
  • python open语句,python内置函数open()的参数用来指定打开文本文件
  • python内置函数大全解释,菜鸟教程python内置函数_2
  • 菜鸟教程python内置函数,python68个内置函数
  • python内置函数大全解释,菜鸟教程python内置函数_1
  • python内置函数的使用方法,菜鸟教程python内置函数_1
  • 留言与评论(共有 条评论)
       
    验证码: