107. sort( )方法-排序列表元素(上)

107. sort( )方法-排序列表元素(上)

【目录】


【正文】

1. 作用

sort [sɔːt]:整理、排序。

sort的中文意思是排序。

sort是列表对象的一个方法。

【功能】对列表进行排序操作。

sort的作用是对原列表中的元素进行排序。

排序后原列表中的元素顺序发生改变。

2. 语法

【语法】

listname.sort(key=None, reverse=False)

【语法解析】

  1. listname要进行排序的列表对象名。
  2. .英文小圆点。
  3. sort方法名。
  4. ( )英文圆括号。
  5. 参数key:可选参数。
  • 用于指定排序的依据
  • 可以是一个函数或lambda表达式。
  • 用于生成排序的键值。
  • 默认为None,表示按照元素的原始值进行排序。
  1. 参数reverse:可选参数。
  • 用于指定排序的顺序
  • 默认为False,表示按照升序排序。
  • 设置为True时,表示按照降序排序。

【参数key】

key = 函数

Key = lambda表达式

【功能】生成排序的键值。

【参数reverse】

reverse[rɪˈvɜːs]反转;颠倒。

  • reverse = False — 升序

  • reverse = True — 降序

3. 数值列表排序

  • reverse = False — 升序
  • reverse = True — 降序

【代码示例】

# 创建一个名为l的列表对象
l= [10, 8, 4, 2, 6]
print("原列表:", l)

# 对列表进行排序操作
# 语法:listname.sort(key=None, reverse=False)
# listname = l,要操做的列表对象为l
# 默认key=None, 表示按照元素的原始值进行排序
# 默认reverse=False, 按照升序进行排序
# reverse = True,按照降序进行排序
l.sort( )

print("升序:", l)

【终端输出】

原列表: [10, 8, 4, 2, 6]
升序: [2, 4, 6, 8, 10]

当sort( )函数没有参数时,默认reverse=False, 按照升序进行排序。

查看输出结果,2 4 6 8 10为升序排序。

【代码示例】

# 创建一个名为l的列表对象
l= [10, 8, 4, 2, 6]
print("原列表:", l)

# 对列表进行排序操作
# 语法:listname.sort(key=None, reverse=False)
# listname = l,要操做的列表对象为l
# 默认key=None, 表示按照元素的原始值进行排序
# 默认reverse=False, 按照升序进行排序
# reverse=True,按照降序进行排序
l.sort(reverse=True )

print("降序:", l)

【终端输出】

原列表: [10, 8, 4, 2, 6]
降序: [10, 8, 6, 4, 2]

当sort( )函数为reverse=True, 按照降序进行排序。

查看输出结果,10, 8, 6, 4, 2为降序排序。

4. key = str.lower 排序时不区分字母大小写

【知识回顾】

lower( )函数的作用是将字符串中的所有大写字母转换为小写字母。

语法:string.lower()

相关知识点击如下链接:

104. lower()函数-将大写字母转换为小写

当sort()函数的key = str.lower时,表示排序时不区分字母大小写。

【代码示例】

# 创建一个名为char的列表
char = ['apple', 'Banana', 'Orange', 'pear']

# 对列表进行排序操作
# 语法:listname.sort(key=None, reverse=False)
# listname =char,要操做的列表对象为char
# 默认key=None, 表示按照元素的原始值进行排序
# 默认reverse=False, 按照升序进行排序
# reverse=True,按照降序进行排序
char.sort( )

# 默认key=None, 表示按照元素的原始值进行排序
print("区分字母大小写排序:", char)

# key = str.lower 表示在排序时不区分字母大小写
char.sort( key= str.lower)

print("不区分字母大小写排序:", char)

【终端输出】

区分字母大小写排序: ['Banana', 'Orange', 'apple', 'pear']
不区分字母大小写排序: ['apple', 'Banana', 'Orange', 'pear']

key = str.lower 时表示在排序时不区分字母大小写。

不区分大小写,若是升序,则按从a到z的顺序进行排序。

5. 如何理解区分大小写

  • 在排序时区分大小写意味着将大写字母和小写字母视为不同的字符进行排序。

  • 例如,按照区分大小写,按升序排列,"Banana"会排在"apple"之前。

  • 因为大写字母的ASCII码值小于小写字母。

  • 使用str.lower函数时,它会将字符串中的所有字符转换为小写字母。

  • 这样,在排序时就不再区分大小写,所有的字符都被视为小写字母进行比较。

  • 例如,使用str.lower函数对"apple"和"Banana"进行排序,它们会被视为"apple"和"banana",而"apple"会排在"banana"之前。

6. key = len 按照元素的长度进行排序

【知识回顾】

len 函数的作用是获取一个可迭代对象(字符串、列表、元组等)的长度或元素个数。

相关知识点击下面的链接:

33. len 函数获取对象的长度或元素个数

key = len 按照元素的长度进行排序。

【代码示例】

# 创建一个名为char的列表
char = ['apple', 'banana', 'orange', 'pear']

# 对列表进行排序操作
# 语法:listname.sort(key=None, reverse=False)
# listname =char,要操做的列表对象为char
# key=len, 表示按照元素长度进行排序
# 默认reverse=False, 按照升序进行排序
# reverse=True,按照降序进行排序
char.sort( key=len )

print("升序:", char)

# reverse=True,按照降序进行排序
char.sort( key=len ,reverse=True )
print("降序:", char)

【终端输出】

升序: ['pear', 'apple', 'banana', 'orange']
降序: ['banana', 'orange', 'apple', 'pear']

【温馨提示】

当key = len(按元素长度排序),元素的长度相同时,列表元素顺序保持不变。

banana元素长度为6。

orange元素长度为6。

【代码示例】

char = [ 'orange', 'banana']
# 按元素长度进行排序
char.sort( key=len )

# 默认reverse=False, 按升序排序
print("升序:", char)

# reverse=True,按降序排序
char.sort( key=len ,reverse=True)
print("降序:", char)

【终端输出】

升序: ['orange', 'banana']
降序: ['orange', 'banana']

因为元素长度都是6,列表的元素顺序不变,保持原样。

【代码示例】

char = ['banana','orange']
# 按元素长度进行排序
char.sort( key=len )
# 默认reverse=False, 按升序排序
print("升序:", char)
# reverse=True,按降序排序
char.sort( key=len ,reverse=True )
print("降序:", char)

【终端输出】

升序: ['banana', 'orange']
降序: ['banana', 'orange']

因为元素长度都是6,列表的元素顺序不变,保持原样。

7. 总结

在这里插入图片描述