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

时间:2023-11-21 10:35:38  热度:0°C

·

在列表中排序

  • 使用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)

免责声明:
1. 《一文讲清Python 中所有数据结构的排序》内容来源于互联网,版权归原著者或相关公司所有。
2. 若《83404919文库网》收录的文本内容侵犯了您的权益或隐私,请立即通知我们删除。