打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一文讲清Python 中所有数据结构的排序

·

在列表中排序

  • 使用sorted()函数进行列表排序

使用内置的sorted()函数对列表进行排序提供了一种便捷的方法来获取列表的排序版本,而无需修改原始列表。Sorted() 函数根据元素的自然顺序或自定义排序键返回一个新的排序列表。 示例代码:

Numbers = [ 4 , 2 , 1 , 3 , 5 ] Sorted_numbers = Sorted (numbers) print (sorted_numbers) # 输出:[1, 2, 3, 4, 5]
  • 使用 sort() 方法进行就地排序

sort() 方法允许对列表进行就地排序,修改原始列表。默认情况下,它按升序排列列表的元素,但可以使用 key 参数进行自定义。示例代码:

Fruits = [ 'apple' , 'banana' , 'cherry' , 'date' ] fruits.sort() print (fruits)   # 输出:['apple', 'banana', 'cherry', 'date']
  • 具有关键功能的自定义排序

Python 的排序函数支持 key 参数,它允许定义一个函数来提取一个值进行比较。这使得可以根据特定标准进行排序,例如根据每个字符串的长度对字符串列表进行排序。示例代码:

Words = [ 'cat' , 'apple' , 'zebra' , 'banana' ] Sorted_words = Sorted (words, key= len ) # 根据字符串长度排序print (sorted_words) # 输出:['cat', 'apple''zebra' , 'banana'”]

对对象列表进行排序

对对象列表进行排序时,key 参数可用于指定要用于比较的对象的属性或属性。这使得可以根据特定对象属性进行排序。示例代码:

class  Person :     def  __init__ ( self, name,age ):         self.name = name         self.age = 年龄people = [Person( 'John' , 25 ), Person( 'Jane' , 30 ), Person( 'Alice' , 20 )] sorted_people= sorted (people,key= lambdax :x.age) forpersoninsorted_people : print (person.name)   #输出:Alice、John、Jane    

元组排序

  • 对元组进行排序:利用其不可变的性质

元组在 Python 中是不可变的,这意味着它们的元素不能被修改。但是,可以通过使用sorted()函数创建排序版本来对元组进行排序,类似于排序列表。示例代码:

tuple_numbers = ( 4 , 2 , 1 , 3 , 5 ) Sorted_tuple = tuple (已排序(tuple_numbers)) print (sorted_tuple) # 输出:(1, 2, 3, 4, 5)
  • 根据特定标准对元组进行排序

要根据特定条件对元组进行排序,可以将 key 参数与排序()一起使用来定义自定义函数或 lambda 表达式,以提取所需的值进行比较。示例代码:

tuple_words = ( 'cat' , 'apple' , 'zebra' , 'banana' ) Sorted_tuple_words = tuple ( sorted (tuple_words, key= len )) print (sorted_tuple_words)   # 输出: ('cat', 'apple', 'banana ''斑马'

集合排序

  • 集合:唯一性和有序元素

Python 中的集合是唯一元素的无序集合。虽然集合没有特定的顺序,但可以通过将它们转换为列表并使用排序()函数来对它们进行排序。示例代码:

set_numbers = { 4 , 2 , 1 , 3 , 5 } Sorted_set = Sorted (set_numbers) print (sorted_set) # 输出:[1, 2, 3, 4, 5]
  • 使用sorted()函数对集合进行排序

由于集合是无序的,因此使用sorted()函数对它们进行排序会返回一个基于元素自然顺序的新排序列表。示例代码:

set_words = { 'cat' , 'apple' , 'zebra' , 'banana' } Sorted_set_words = Sorted (set_words) print (sorted_set_words)   # 输出:['apple', 'banana', 'cat', 'zebra']

字典排序

  • 按键对字典排序

Python 中的字典是键值对的无序集合。但是,如果您要按排序顺序检索键,则可以将sorted() 函数与字典的keys() 方法结合使用。示例代码:

Dictionary = { 'b' : 2 , 'a' : 1 , 'd' : 4 , 'c' : 3 } Sorted_keys = Sorted (dictionary.keys()) for key in Sorted_keys: print (key,dictionary[key] ) # 输出:a 1, b 2, c 3, d 4
  • 按值对字典排序

要根据字典的值对字典进行排序,sorted() 函数可以与字典的 items() 方法和自定义键函数或 lambda 表达式结合使用。示例代码:

Dictionary = { 'b' : 2 , 'a' : 1 , 'd' : 4 , 'c' : 3 } Sorted_items = Sorted (dictionary.items(), key= lambda x: x[ 1 ]) for key, value in Sorted_items:     print (key, value)   # 输出:a 1, b 2, c 3, d 4

数组排序

  • 理解 Python 中的数组

Python 中的数组是由array模块提供的,允许高效存储同类数据类型。可以使用sorted()函数或数组的sort()方法来对数组进行排序。示例代码:

import array Numbers = array.array( 'i' , [ 4 , 2 , 1 , 3 , 5 ]) Sorted_numbers = Sorted (numbers) print (sorted_numbers) # 输出:[1, 2, 3, 4, 5]
  • 使用内置函数和方法对数组进行排序

数组提供了一种sort()方法,允许对数组进行就地排序,修改原始数组。该方法默认按升序对元素进行排序。示例代码:

import array Numbers = array.array( 'i' , [ 4 , 2 , 1 , 3 , 5 ]) Numbers.sort() print (numbers)   # 输出: array('i', [1, 2, 3, 4 , 5])

Pandas 排序

  • 按列值排序

要按一列或多列对数据框进行排序,可以使用该sort_values()方法。此方法允许您指定要排序的列以及所需的排序顺序(升序或降序)。示例代码:

import pandas as pd # 创建一个示例 DataFrame data = { 'Name' : [ 'Alice' , 'Bob' , 'Charlie' ], 'Age' : [ 25 , 30 , 22 ], 'Salary' : [ 50000 , 60000 , 45000 ]} df = pd.DataFrame(data) # 按 'Salary' 列降序对 DataFrame 进行排序Sorted_df = df.sort_values( 'Salary' , ascending= False ) print (sorted_df)
  • 按多列排序

要按多列对 DataFrame 进行排序,您可以将列名称列表传递给该sort_values()方法。DataFrame 将根据指定的列顺序进行排序。示例代码:

# 按“年龄”升序对 DataFrame 进行排序,然后按“薪水”降序排序Sorted_df = df.sort_values([ 'Age' , 'Salary' ], ascending=[ True , False ]) print (sorted_df)
  • 分选系列

对Series进行排序:要对Series对象进行排序,可以使用 方法sort_values(),类似于对DataFrame进行排序。此方法返回一个带有排序值的新系列。示例代码:

# 创建一个示例 Series s = pd.Series([ 5 , 2 , 7 , 1 , 4 ]) # 按升序对 Series 进行排序排序_s = s.sort_values() print (sorted_s)
  • 按索引排序

如果想根据 Series 的索引对 Series 进行排序,可以使用该sort_index()方法。此方法返回一个新的 Series,其中的值根据索引排序。示例代码:

# 按索引对系列进行排序sorted_s = s.sort_index() print (sorted_s)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python列表排序函数
C STL常用算法(排序、合并、搜索和分区)
一些好用的函数
掌握 Python Lambdas - 编写更优雅、更高效、更易于维护的代码
Python:如何根据字典值大小,对字典排序
sorted()函数--python
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服