Python标准库学习之operator.itemgetter函数的使用

 更新时间:2024年07月19日 09:23:39   作者:Midsummer-逐梦  
operator.itemgetter是Python标准库operator模块中的一个函数,本文主要介绍了Python标准库学习之operator.itemgetter函数的使用,具有一定的参考价值,感兴趣的可以了解一下

一、简介

operator.itemgetter 是 Python 标准库 operator 模块中的一个函数。它主要用于获取可迭代对象中的特定元素,常用于排序操作。这个函数返回一个可调用对象,可以方便地从序列或映射中获取指定的项。

二、语法和参数

operator.itemgetter(*items)

参数:

  • *items:一个或多个索引、键或其他可用于从对象中获取项的值。

三、实例

3.1 基本使用

代码:

from operator import itemgetter

# 创建一个列表
fruits = ['apple', 'banana', 'cherry', 'date']

# 使用itemgetter获取特定位置的元素
getter = itemgetter(1, 3)
result = getter(fruits)

print("原始列表:")
print(fruits)
print("\nitemgetter(1, 3)的结果:")
print(result)

输出:

原始列表:
['apple', 'banana', 'cherry', 'date']

itemgetter(1, 3)的结果:
('banana', 'date')

3.2 用于列表排序

代码:

from operator import itemgetter

# 创建一个包含元组的列表
people = [
    ('John', 25, 'USA'),
    ('Jane', 30, 'UK'),
    ('Bob', 22, 'Canada'),
    ('Alice', 28, 'Australia')
]

# 按年龄排序
sorted_by_age = sorted(people, key=itemgetter(1))

print("原始列表:")
print(people)
print("\n按年龄排序后的列表:")
print(sorted_by_age)

# 按国家排序,然后按年龄排序
sorted_complex = sorted(people, key=itemgetter(2, 1))

print("\n按国家排序,然后按年龄排序的列表:")
print(sorted_complex)

输出:

原始列表:
[('John', 25, 'USA'), ('Jane', 30, 'UK'), ('Bob', 22, 'Canada'), ('Alice', 28, 'Australia')]

按年龄排序后的列表:
[('Bob', 22, 'Canada'), ('John', 25, 'USA'), ('Alice', 28, 'Australia'), ('Jane', 30, 'UK')]

按国家排序,然后按年龄排序的列表:
[('Alice', 28, 'Australia'), ('Bob', 22, 'Canada'), ('Jane', 30, 'UK'), ('John', 25, 'USA')]

3.3 用于字典排序

代码:

from operator import itemgetter

# 创建一个字典
fruits = {'apple': 3, 'banana': 1, 'cherry': 2, 'date': 4}

# 按值排序
sorted_by_value = sorted(fruits.items(), key=itemgetter(1))

print("原始字典:")
print(fruits)
print("\n按值排序后的列表:")
print(sorted_by_value)

# 转换回字典
sorted_dict = dict(sorted_by_value)
print("\n排序后的字典:")
print(sorted_dict)

输出:

原始字典:
{'apple': 3, 'banana': 1, 'cherry': 2, 'date': 4}

按值排序后的列表:
[('banana', 1), ('cherry', 2), ('apple', 3), ('date', 4)]

排序后的字典:
{'banana': 1, 'cherry': 2, 'apple': 3, 'date': 4}

四、注意事项

  • itemgetter 返回的是一个可调用对象,不是实际的值。
  • 对于字典,itemgetter(key) 等同于 lambda x: x[key],但性能更好。
  • 在处理大量数据时,itemgetter 通常比 lambda 函数更高效。
  • itemgetter 可以接受多个参数,用于同时获取多个项。
  • 在排序复杂结构(如包含多个字段的对象列表)时,itemgetter 特别有用。
  • 使用 itemgetter 时要确保指定的键或索引在所有要处理的对象中都存在,否则会引发 KeyError 或 IndexError

到此这篇关于Python标准库学习之operator.itemgetter函数的使用的文章就介绍到这了,更多相关Python operator.itemgetter函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Python结合SpeechRecognition和gTTS库打造智能语音备忘录

    Python结合SpeechRecognition和gTTS库打造智能语音备忘录

    这篇文章主要为大家详细介绍了如何利用Python的SpeechRecognition和gTTS库,打造一款集语音输入,自动转文字,朗读保存于一体的智能语音备忘录工具,感兴趣的小伙伴可以了解下
    2025-04-04
  • python 随机森林算法及其优化详解

    python 随机森林算法及其优化详解

    这篇文章主要介绍了ptyhon 随机森林算法及其优化详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python playwright--pytest-playwright、pytest-base-url插件编写用例

    python playwright--pytest-playwright、pytest-base-url插件编

    这篇文章主要介绍了python playwright--pytest-playwright、pytest-base-url插件编写用例,它提供上下文隔离,开箱即用地在多个浏览器配置上运行,它继承了pytest框架,以及支持playwright的一些基础使用,需要的朋友可以参考下
    2023-05-05
  • Python变量和字符串详解

    Python变量和字符串详解

    本篇文章主要介绍了Python变量和字符串的相关资料。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息

    Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息

    这篇文章主要介绍了Python开发之身份证验证库id_validator验证身份证号合法性及Python解析身份证号,根据身份证号返回住址年龄等信息,需要的朋友可以参考下
    2020-03-03
  • python3.8下载及安装步骤详解

    python3.8下载及安装步骤详解

    这篇文章主要介绍了python3.8下载及安装步骤详解,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • pycharm通过anaconda安装pyqt5的教程

    pycharm通过anaconda安装pyqt5的教程

    PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,这篇文章主要介绍了pycharm通过anaconda来安装pyqt5的教程,需要的朋友可以参考下
    2020-03-03
  • Python使用DPKT实现分析数据包

    Python使用DPKT实现分析数据包

    dpkt项目是一个Python模块,主要用于对网络数据包进行解析和操作,z这篇文章主要为大家介绍了python如何利用DPKT实现分析数据包,有需要的可以参考下
    2023-10-10
  • 详解Python中的Dict

    详解Python中的Dict

    这篇文章主要为大家介绍了Python中的Dict,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • 利用Python代码实现模拟动态指针时钟

    利用Python代码实现模拟动态指针时钟

    这篇文章主要为大家详细介绍了如何利用python和C++代码实现模拟动态指针时钟,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-04-04

最新评论