python中sorted的用法,python的sorted函数什么意思

  python中sorted的用法,python的sorted函数什么意思

  众所周知,Python中常用的排序函数有sorted()和sorted()。本文将详细介绍sorted()和sort()方法的代码示例,并说明它们之间的区别。有兴趣的可以看看。

  

目录
sort是sort()方法以及如何妙用sorted()方法?在Python中,可以使用sorted()方法或sort()方法对数据进行排序。

  在本文中,我将提供sorted()和sort()方法的代码示例,并解释它们之间的区别。

  

sort()方法是什么

  该方法接受列表并对其进行排序。但是,请记住,该方法没有返回值,也就是说,它不返回任何值。

  在下面的例子中,我们有一个数字列表。我们可以使用sort()方法对列表进行升序排序。

  my_list=[67,2,999,1,15]

  #输入未排序的列表

  打印(无序列表: ,my_list)

  # sort()方法本地排序列表my_list,默认从小到大。

  my_list.sort()

  #这将打印有序列表

  打印(订购列表: ,我的列表)

  输出:

  无序列表: [67,2,999,1,15]

  有序列表: [1,2,15,67,999]

  注意: my_list.sort()只在本地对列表my_list进行排序,返回的是None。

  下面的代码是3360

  我的列表1=[6,7,8,9,10]

  print(my _ list _ 1 . sort())# my _ list _ 1被排序并作为None返回

  我的列表2=[6,7,8,9,10]

  print(my_list_2 . sort())# my _ list _ 2未排序,返回仍为None,但my _ list _ 2已更改。

  输出:

  没有人

  没有人

  继续想!默认情况下,Sort()按升序排序。如果要降序排序?

  实际上,sort()方法可以接受两个可选参数,称为key和reverse。

  Key具有将在列表中的每一项上调用的函数值。

  在这个例子中,我们可以使用len()函数作为关键参数的值。Key=len将告诉计算机按长度从最小到最大对姓名列表进行排序。

  names=[杰西卡,本,卡尔,杰姬,温迪]

  打印(“未排序的:”,名称)

  names.sort(key=len)

  打印( Sorted: ,名称)

  输出:

  未排序: [杰西卡,本,卡尔,杰姬,温迪]

  Sorted: [本,卡尔,温迪,杰姬,杰西卡]

  Reverse有两个布尔值,真或假。

  在本例中,reverse=True将告诉计算机按相反的字母顺序对列表进行排序。

  names=[杰西卡,本,卡尔,杰姬,温迪]

  打印(“未排序的:”,名称)

  names.sort(reverse=True)

  打印( Sorted: ,名称)

  未排序: [杰西卡,本,卡尔,杰姬,温迪]

  Sorted: [温迪,杰西卡,杰基,卡尔,本]

  

如何妙用sorted() 方法

  这个方法将从iterable对象中返回一个新的排序列。

  表。可迭代对象包括列表、字符串和元组等等。

  sort() 和 sorted() 之间的一个主要区别是 sorted() 将返回一个新列表,而 sort() 对列表进行原地排序。

  请记住: sorted() 将返回一个新列表,而 sort() 对列表进行原地排序。

  在这个例子中,我们有一个按升序排序的数字列表。

  

sorted_numbers = sorted([77, 22, 9, -6, 4000])

  print("升序排序: ", sorted_numbers)

  

  输出:

  

升序排序: [-6, 9, 22, 77, 4000]

  

  前方高能,继续深挖sorted()!

  sorted() 方法还接受可选的 key 和 reverse 参数。

  在这个例子中,我们有一个按降序排序的数字列表。reverse=True 告诉计算机将列表从最大到最小反转。

  

sorted_numbers = sorted([77, 22, 9, -6, 4000], reverse=True)

  print("降序排序: ", sorted_numbers)

  

  输出:

  

降序排序: [4000, 77, 22, 9, -6]

  

  sorted() 和 sort() 之间的另一个主要区别是 sorted() 方法接受任何可迭代对象,而 sort() 方法仅适用于列表。

  在此示例中,我们使用 split() 方法将字符串分解为单个单词。然后我们使用 sorted() 按长度从最小到最大对单词进行排序。

  

my_sentence = "i love python! you like what?"

  print("原字符串: ", my_sentence)

  print(sorted(my_sentence.split(), key=len))

  

  输出:

  

['i', 'you', 'love', 'like', 'what?', 'python!']

  

  我们还可以修改此示例,并包含 key 和 reverse 参数。

  这个修改后的示例现在将从最大到最小对列表进行排序。

  

my_sentence = "i love python! you like what?"

  print("原字符串: ", my_sentence)

  print(sorted(my_sentence.split(), key=len, reverse=True))

  

  输出:

  

['python!', 'what?', 'love', 'like', 'you', 'i']

  

  我们还可以对元组使用 sorted() 方法。

  在这个例子中,我们有一个代表乐队学生姓名、年龄和乐器的元组集合。

  

band_students = [

   (Danny, 17, Trombone),

   (Mary, 14, Flute),

   (Josh, 15, Percussion)

  ]

  

  我们可以使用 sorted() 方法按学生的年龄对这些数据进行排序。该键具有 lambda 函数的值,该函数告诉计算机按年龄升序排序。

  lambda 函数是没有名称的匿名函数。你可以使用 lambda 关键字来定义这种类型的函数。

  

lambda student: student[1]

  

  要访问元组中的值,请使用括号表示法和要访问的索引号。由于我们从零开始计数,因此年龄值为 [1]。

  这是完整的示例。

  

band_students = [

   (Danny, 17, Trombone),

   (Mary, 14, Flute),

   (Josh, 15, Percussion)

  ]

  print(sorted(band_students, key=lambda student: student[1]))

  

  输出:

  

[('Mary', 14, 'Flute'), ('Josh', 15, 'Percussion'), ('Danny', 17, 'Trombone')]

  

  我们可以修改此示例,并改为按乐器对数据进行排序。我们可以使用 reverse 通过反向字母顺序对工具进行排序。

  

band_students = [

   (Danny, 17, Trombone),

   (Mary, 14, Flute),

   (Josh, 15, Percussion)

  ]

  print(sorted(band_students, key=lambda student: student[2], reverse=True))

  

  输出:

  

[('Danny', 17, 'Trombone'), ('Josh', 15, 'Percussion'), ('Mary', 14, 'Flute')]

  

  

  

总结

  在本文中,我们学习了如何使用 Python 的 sort() 和 sorted() 方法。

  sort() 方法仅适用于列表,并对列表进行排序。它没有返回值。

  sorted() 方法适用于任何可迭代对象,并返回一个新的排序列表。可迭代对象的示例包括列表、字符串和元组。

  这两种方法都有 key 和 reverse 两个可选参数。

  key 具有将在列表中的每个项目上调用的函数的值。

  reverse 的布尔值为 True 或 False。

  此方法接受一个列表并对其进行排序。但,请记住此方法没有返回值。

  到此这篇关于详解Python中sorted()和sort()的使用与区别的文章就介绍到这了,更多相关Python sorted() sort()内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

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

留言与评论(共有 条评论)
   
验证码: