Python List排序技巧:快速整理列表数据

一、Python List排序的基础知识

Python的内置函数sorted()可以对列表进行排序。使用方法为:sorted(list)。其中,list是要排序的列表,sorted()函数将返回排序后的列表。这个函数返回的是一个新的列表,而不是对原有列表进行操作。

默认情况下,sorted()使用升序排列。如果要使用降序排列,则可以将参数reverse设置为True

对于对象列表而言,可以使用对象的某个属性进行排序。这里需要使用sorted()函数的key参数。

# 排序基础示例:
num_list = [2, 5, 1, 9, 3]
sorted_list = sorted(num_list)  # 默认升序
print(sorted_list)  # [1, 2, 3, 5, 9]

reverse_list = sorted(num_list, reverse=True)  # 降序排列
print(reverse_list)  # [9, 5, 3, 2, 1]

word_list = ['cat', 'elephant', 'dog', 'bat']
sorted_words = sorted(word_list)  # 默认按字典序排列
print(sorted_words)  # ['bat', 'cat', 'dog', 'elephant']

len_words = sorted(word_list, key=len) # 以字符串长度排序
print(len_words)  # ['cat', 'dog', 'bat', 'elephant']

二、自定义排序规则

对于一些特殊需求,需要使用自定义的排序规则。例如,进行不区分大小写的排序,或是将某个单词排在列表的最前面。

为了实现这个功能,可以使用sort()函数并自定义比较函数key。该函数可接受一个值并返回一个排序关键字。如果要使用自定义比较函数,则需要将参数key设置为该函数名。

# 排序规则的自定义示例:
def to_lowercase(word):
    """将string小写化然后返回"""
    return word.lower()

words = ["Wombat", "Dog", "Cat", "Giraffe"]
words.sort(key=to_lowercase)
print(words)  # ['Cat', 'Dog', 'Giraffe', 'Wombat']

三、按多个关键字排序

在排序时,如果有多个关键字,可以使用多重排序,即按照多个关键字进行排序。多重排序方法为:将多个排序关键字放入元组,将这些元组放入列表,然后使用sorted()函数进行排序即可。

# 按多个关键字排序示例:
students = [
    {"name": "Amy", "age": 31, "score": 80},
    {"name": "Bob", "age": 24, "score": 90},
    {"name": "Charlie", "age": 28, "score": 75},
    {"name": "David", "age": 28, "score": 80}]
sorted_students = sorted(students, key=lambda s: (s["age"], s["score"]))
print(sorted_students)

四、使用numpy对多维列表进行排序

对于多维列表,numpy的sort方法是一个更好的选择。使用numpy的sort函数可以对多维数组的任意列或行进行排序。

# 对多维列表的排序示例:
import numpy as np

data = np.array([[5, 9, 8], [4, 7, 6], [3, 2, 1]])
sorted_data = np.sort(data, axis=0) # 按列排序
print(sorted_data)

五、稳定排序和不稳定排序

稳定排序指输入中相等的元素在输出中的相对位置不发生改变。而不稳定排序则不保证相等元素的相对位置。

Python中的内置排序排序sorted()是稳定的排序。

# 稳定排序示例:
words = ["Dog", "cat", "bat", "Timberwolf", "giraffe", "elephant", "cow"]
sorted_words = sorted(words, key=str.lower)
print(sorted_words)  # ['bat', 'cat', 'cow', 'Dog', 'elephant', 'giraffe', 'Timberwolf']

六、使用operator模块进行排序

Python的operator模块提供了一些方便的函数,使之易于排序。

# operator模块排序示例:
import operator

data = [("apple", 1), ("orange", 3), ("banana", 2)]
sorted_data = sorted(data, key=operator.itemgetter(1))
print(sorted_data)

七、总结

Python中的列表可用于存储和操作数据。对于Python列表的排序,主要使用内置函数sorted()。排序时,可以使用排序规则来满足多种不同的需求,如自定义排序、多重排序。

对于特别大的列表,使用numpy的sort方法会更有效率。Python还提供了操作符模块,对于某些特殊情况下的排序,则可以使用这些功能更方便的完成。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/155008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-17 02:38
下一篇 2024-11-17 02:38

相关推荐

  • Python读取CSV数据画散点图

    本文将从以下方面详细阐述Python读取CSV文件并画出散点图的方法: 一、CSV文件介绍 CSV(Comma-Separated Values)即逗号分隔值,是一种存储表格数据的…

    编程 2025-04-29
  • 使用vscode建立UML图的实践和技巧

    本文将重点介绍在使用vscode在软件开发中如何建立UML图,并且给出操作交互和技巧的指导。 一、概述 在软件开发中,UML图是必不可少的重要工具之一。它为软件架构和各种设计模式的…

    编程 2025-04-29
  • Ojlat:一款快速开发Web应用程序的框架

    Ojlat是一款用于快速开发Web应用程序的框架。它的主要特点是高效、易用、可扩展且功能齐全。通过Ojlat,开发人员可以轻松地构建出高质量的Web应用程序。本文将从多个方面对Oj…

    编程 2025-04-29
  • Python字符转列表指南

    Python是一个极为流行的脚本语言,在数据处理、数据分析、人工智能等领域广泛应用。在很多场景下需要将字符串转换为列表,以便于操作和处理,本篇文章将从多个方面对Python字符转列…

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • Python中不同类型的列表

    Python是一种功能强大的编程语言,其内置数据结构之一为列表。列表可以容纳任意数量的元素,并且可以存储不同类型的数据。 一、列表的基本操作 Python的列表类型支持许多操作,如…

    编程 2025-04-29
  • 如何用Python统计列表中各数据的方差和标准差

    本文将从多个方面阐述如何使用Python统计列表中各数据的方差和标准差, 并给出详细的代码示例。 一、什么是方差和标准差 方差是衡量数据变异程度的统计指标,它是每个数据值和该数据值…

    编程 2025-04-29
  • Python多线程读取数据

    本文将详细介绍多线程读取数据在Python中的实现方法以及相关知识点。 一、线程和多线程 线程是操作系统调度的最小单位。单线程程序只有一个线程,按照程序从上到下的顺序逐行执行。而多…

    编程 2025-04-29
  • Python两张表数据匹配

    本篇文章将详细阐述如何使用Python将两张表格中的数据匹配。以下是具体的解决方法。 一、数据匹配的概念 在生活和工作中,我们常常需要对多组数据进行比对和匹配。在数据量较小的情况下…

    编程 2025-04-29
  • Python爬取公交数据

    本文将从以下几个方面详细阐述python爬取公交数据的方法: 一、准备工作 1、安装相关库 import requests from bs4 import BeautifulSou…

    编程 2025-04-29

发表回复

登录后才能评论