首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏自然语言处理

    Python operator.itemgetter

    city': 'frankfurt', 'name': 'david'}, {'age': 71, 'city': 'tokyo', 'name': 'john'}] 其实,key用operator.itemgetter 指定想要排序的元素,并且速度更快 from operator import itemgetter data = [ {'age': 31, 'city': 'taipei', 'name': ' rio', 'name': 'cathy'}, {'age': 48, 'city': 'frankfurt', 'name': 'david'}] print(sorted(data, key=itemgetter

    60430发布于 2018-12-07
  • 来自专栏python前行者

    python sorted和operator.itemgetter函数

    operator.itemgetter函数 operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。 a = [1,2,3] >>> b=operator.itemgetter(1) //定义函数b,获取对象的第1个域的值 >>> b(a) 2 >>> b=operator.itemgetter (1,0) //定义函数b,获取对象的第1个域和第0个的值 >>> b(a) (2, 1) 要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值 使用itemgetter来进行排序,使用元组的第二个元素进行排序 ? 使用元组的第一个元素进行排序 ? 有了上面的operator.itemgetter函数,也可以用该函数来实现,例如要通过student的第三个域排序,可以这么写: sorted(students, key=operator.itemgetter

    94530发布于 2019-03-25
  • 来自专栏Python七号

    Python 小技巧-利用 itemgetter 提升排序速Python 小技巧-利用 itemgetter 提升排序速度

    itemgetter 函数可以生成高效的 getter 函数版本,可以与 sorted() 函数结合使用以提高排序操作的性能。 [13]: sorted(data,key = itemgetter(1)) Out[13]: [('b', 1), ('a', 2), ('c', 3)] 你可能好奇,itemgetter 是如何工作的 ]: getter = itemgetter('c') In [23]: getter(item) Out[23]: 3 itemgetter() 是 Python 标准库的一部分,向 itemgetter () 传递一个参数,这个参数或者是索引位置,或者是字典的键,然后 itemgetter() 函数将返回一个可以调用的 getter 对象。 现在让我们来测试一下 lambda 和 itemgetter 在排序时,到底哪个更高效? 从上面的结果可以看出,使用 itemgetter() 更高效。

    55320编辑于 2022-10-25
  • 来自专栏决胜机器学习

    从机器学习学python(二) ——iteritems、itemgetter、sorted、sort

    从机器学习学python(二)——iteritems、itemgetter、sorted、sort (原创内容,转载请注明来源,谢谢) 一、iteritems 这个方法由python的dict类型可以调用 二、operator.itemgetter 这个是python的operator模块,其中提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号。 要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。 示例如下: a = [1,2,3] >>> b=operator.itemgetter(1) //定义函数b,获取对象的第1个域的值 >>> b(a) 2 >>> b=operator.itemgetter , attrgetter >>> sorted(students, key=itemgetter(1,2)) # sort by grade then by age [('john', 'A',

    1.1K70发布于 2018-03-07
  • 来自专栏编程教程

    Python数据提取与复用神器:itemgetter从入门到实战

    解决方案:结合itemgetter和列表推导式:result = [itemgetter('city')(itemgetter('address')(user)) for user in users]# 或更清晰的分步写法get_address = itemgetter('address')get_city = itemgetter('city')result = [get_city(get_address = itemgetter('name') # 每次循环都创建新对象 print(get_name(user)) # 正确做法 get_name = itemgetter('name') for pandas结构化数据分析功能强大,支持向量化操作依赖第三方库,内存消耗大attrgetter对象属性提取与itemgetter语法一致仅适用于自定义对象选择建议:纯字典列表操作:优先itemgetter 掌握它后,你会自然地写出这样的代码:# 提取用户ID、姓名和前两个订单金额get_user_data = itemgetter('id', 'name')get_order_amounts = itemgetter

    30510编辑于 2025-11-03
  • itemgetter 神器详解

    itemgetter 神器详解你是不是经常遇到这种麻烦事? itemgetter是 Python 标准库operator里的一个函数,不用额外安装,直接导入就能用:# 第一步:导入itemgetter(必须先做这步)from operator import itemgetter2 用itemgetter造一个“拿索引1元素”的工具get_index_1 = itemgetter(1) # 这里不是拿数据,是造工具!# 2. 问题 1:直接调用 itemgetter,不传入数据(最常见)错误示例:from operator import itemgetter# 错误:以为itemgetter(1)能直接拿数据,其实它只是个工具 问题 1:itemgetter 和 lambda 有什么区别?什么时候用 itemgetter 更好?

    24010编辑于 2025-09-26
  • 来自专栏AutoML(自动机器学习)

    python sorted函数

    的用法见 注释2)  Python代码   >>> from operator import itemgetter, attrgetter   >>> sorted(students, key=itemgetter (__builtin__.object)  |  itemgetter(item, ...) --> itemgetter object  |  |  Return a callable object   |  After, f=itemgetter(2), the call f(r) returns r[2].   |  After, g=itemgetter(2,5,3), the call g(r) returns (r[2], r[5], r[3])  相当于  Python代码   def itemgetter (1)    >>> b(a)    2 >>> b=operator.itemgetter(1,0)    >>> b(a)    (2, 1)    >>> b=itemgetter(1)   

    1.2K70发布于 2018-01-23
  • 来自专栏机器学习从入门到成神

    Python3下机器学习实战KNN代码出现AttributeError: ‘dict’ object has no attribute错误

    35512245/article/details/78639317 出现错误的代码时: result = sorted(classCount.iteritems(), key=operator.itemgetter iteritems' 之所以会出现上述错误是因为python3中已经没有这个属性,直接改为items即可: result = sorted(classCount.items(), key=operator.itemgetter (1), reverse=True) ---- 知识点补充: operator.itemgetter函数 operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号 a = [1,2,3] b=operator.itemgetter(1) //定义函数b,获取对象的第1个域的值 print(b(a)) 输出: 2 b=operator.itemgetter (1,0) //定义函数b,获取对象的第1个域和第0个域的值 print(b(a)) 输出: (2, 1) 要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数

    4.6K20发布于 2018-09-14
  • 来自专栏python3

    Python之排序

    >>> name [('a', 5), ('c', 3), ('b', 4), ('e', 1), ('d', 2)] >>> name.sort(key=operator.itemgetter(1)) operator模块的itemgetter函数介绍 class itemgetter(__builtin__.object) | itemgetter(item, ...) --> itemgetter | After f = itemgetter(2), the call f(r) returns r[2]. | After g = itemgetter(2, 5, 3), the call g(r) returns (r[2], r[5], r[3]) >>> name [('a', 5), ('c' , 3), ('b', 4), ('e', 1), ('d', 2)] >>> key = operator.itemgetter(3) >>> key(name) ('e', 1) #其中的调用关系

    44110发布于 2020-01-13
  • 来自专栏AutoML(自动机器学习)

    python sorted排序用法详解

    python    5行 a = [1,2,3]  b = [5,6,7]  c = map(operator.mul, a, b)  # c的值就为[5, 12, 21] 这里只介绍它的itemgetter operator — Standard operators as functions operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号 bash    8行 a = [1,2,3]   >>> b=operator.itemgetter(1) //定义函数b,获取对象的第1个域的值  >>> b(a)   2 >>> b=operator.itemgetter (1),reverse=True)  >>> [('da', 95), ('bc', 16), ('a', 15), ('ab', 6)]  看到这你会不会觉得operator的itemgetter函数可以用 文章参考: Python中的sorted函数以及operator.itemgetter函数 python中的operator库 written by MARSGGBO 2017-2-14

    1.3K70发布于 2018-01-23
  • 来自专栏sktj

    python 字典关键字排序

    operator.itemgetter rows = [ {'fname': 'Brian', 'lname': 'Jones', 'uid': 1003}, {'fname': 'David', rows_by_fname = sorted(rows, key=itemgetter('fname')) rows_by_uid = sorted(rows, key=itemgetter('uid ')) print(rows_by_fname) print(rows_by_uid) rows_by_lfname = sorted(rows, key=itemgetter('lname','fname ')) print(rows_by_lfname) min(rows, key=itemgetter('uid')) {'fname': 'John', 'lname': 'Cleese', 'uid': 1001} max(rows, key=itemgetter('uid')) {'fname': 'Big', 'lname': 'Jones', 'uid': 1004}

    87910发布于 2019-09-25
  • 来自专栏算法channel

    这6个Python进阶用法,你用过哪些?

    value for key, value in a.items() if value > 4.0} print(da) # {'apple': 5.6, 'orange': 4.7} 3 Key使用itemgetter 多字段排序 from operator import itemgetter a = [{'date': '2019-12-15', 'weather': 'cloud'}, {'date': '2019-12-13', 'weather': 'sunny'}, {'date': '2019-12-14', 'weather': 'cloud'}] a.sort(key=itemgetter 分组 from operator import itemgetter from itertools import groupby a.sort(key=itemgetter('weather', 'date ')) # 必须先排序再分组 for k, items in groupby(a, key=itemgetter('weather')): print(k) for i in items

    39220编辑于 2022-01-26
  • 来自专栏算法channel

    Python提升“技术逼格”的6个方法

    value for key, value in a.items() if value > 4.0} print(da) # {'apple': 5.6, 'orange': 4.7} 3 Key使用itemgetter 多字段排序 from operator import itemgetter a = [{'date': '2019-12-15', 'weather': 'cloud'}, {'date': '2019-12-13', 'weather': 'sunny'}, {'date': '2019-12-14', 'weather': 'cloud'}] a.sort(key=itemgetter 分组 from operator import itemgetter from itertools import groupby a.sort(key=itemgetter('weather', 'date ')) # 必须先排序再分组 for k, items in groupby(a, key=itemgetter('weather')): print(k) for i in items

    44320发布于 2019-12-23
  • 来自专栏Python小屋

    Python内置函数sorted()高级排序用法

    >>> from operator import itemgetter >>> gameresult = [['Bob', 95.0, 'A'], ['Alan 83.5, 'A'], ['Rob', 89.3, 'E']] #按子列表第3个元素进行升序排序 >>> sorted(gameresult, key=itemgetter 83.5, 'A'], ['Alan', 86.0, 'C'], ['Rob', 89.3, 'E']] #按第3个元素升序,然后按第1个升序 >>> sorted(gameresult, key=itemgetter 95.0, 'A'], ['Mandy', 83.5, 'A'], ['Alan', 86.0, 'C'], ['Rob', 89.3, 'E']] >>> sorted(gameresult, key=itemgetter Patty', 'wins':9, 'losses':3, 'rating':72.8}] #按’wins’升序,该值相同的按’name’升序排序 >>> sorted(gameresult, key=itemgetter

    95160发布于 2018-04-17
  • 来自专栏全栈程序员必看

    Python中sort与sorted函数

    #coding:utf-8 from operator import attrgetter,itemgetter list1 = [(2,'huan',23),(12,'the',14),(23, 函数进行重写key所代表的函数,按照下标为1处的元素进行排序 list1.sort(key=itemgetter(1)) print list1 #[(2, 'huan', 23), (23, =itemgetter(2)) print list1 # [(12, 'the', 14), (2, 'huan', 23), (23, 'liu', 90)] # 此处可以类比lambda operator.itemgetter()函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号)。看例子 ''' 遇到问题没人解答? ''' a = [1,2,3] >>> b=operator.itemgetter(1) //定义函数b,获取对象的第1个域的值 >>> b(a) >>> b=operator.itemgetter

    1K10编辑于 2022-11-15
  • [python]sorted()函数及用法

    函数 operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。 a = [1,2,3] >>> b=operator.itemgetter(1) //定义函数b,获取对象的第1个域的值 >>> b(a) 2 >>> b=operator.itemgetter (1,0) //定义函数b,获取对象的第1个域和第0个的值 >>> b(a) (2, 1) 要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值 有了上面的operator.itemgetter函数,也可以用该函数来实现,例如要通过student的第三个域排序,可以这么写: sorted(students, key=operator.itemgetter (2)) sorted函数也可以进行多级排序,例如要根据第二个域和第三个域进行排序,可以这么写: sorted(students, key=operator.itemgetter(1,2)) 即先跟句第二个域排序

    48710编辑于 2025-07-22
  • 来自专栏雷子说测试开发

    python字典排序

    key=lambda i:i[1]) #结果: [('d', 1), ('c', 2), ('b', 3), ('a', 4)] 通过某个关键字排序一个字典列表 通过使用 operator 模块的 itemgetter 函数,可以非常容易的排序这样的数据结构,代码如下: from operator import itemgetter name=[{'name': 'Big', 'lname': 'Jones', 'uid , 'uid': 1002}, {'name': 'John', 'lname': 'Cleese', 'uid': 1001}] rows_by_fname = sorted(name, key=itemgetter name': 'Brian', 'lname': 'Jones', 'uid': 1003}, {'name': 'Big', 'lname': 'Jones', 'uid': 1004}] itemgetter () 函数也支持多个 keys,比如下面的代码: rows_by_lfname = sorted(name, key=itemgetter('lname','name')) #结果: [{'name':

    49310编辑于 2024-03-25
  • 来自专栏python3

    python二维列表排序

    , 'Rose', 13], [5, 'Sam', 12], [3, 'Jack', 12], [1, 'Tom', 10], [4, 'Joy', 8]] 方法二: 使用 operator 模块的 itemgetter from operator import itemgetter 按学号顺序排序: sorted(students,key=itemgetter(0)) 按年龄倒序排序: sorted(students, key=itemgetter(2),reverse=True) 按年龄为主要关键字,名字为次要关键字倒序排序: print(sorted(students,key=itemgetter(2,1),reverse

    2.8K10发布于 2020-01-03
  • 来自专栏Python1.0

    python中列表的排序方法操作总结分享

    , y[2]))# sort by age [(‘dave’,‘B’,10),(‘jane’,‘B’,12),(‘john’,‘A’,15)] 用 operator 函数来加快速度,上面排序等价于:(itemgetter 的用法见注释2) from operator import itemgetter, attrgette sorted(students, key=itemgetter(2)) 用 operator 函数进行多级排序 sorted(students, key=itemgetter(1,2))# sort by grade then by age [(‘john’,‘A’,15),(‘dave’,‘B’,10),(‘ jane’,‘B’,12)] 2.对由字典排序 d ={‘data1’:3,‘data2’:1,‘data3’:2,‘data4’:4} sorted(d.iteritems(), key=itemgetter

    1.3K20编辑于 2022-01-08
  • 来自专栏测试游记

    《流畅的Python》第五章学习笔记

    注解的最大作用是:为IDE和lint程序的静态检查功能提供额外的类型信息 itemgetter 返回一个根据索引提取元素的函数 from operator import itemgetter class itemgetter: """ Return a callable object that fetches the given item(s) from its operand. After f = itemgetter(2), the call f(r) returns r[2]. _items 等价于 def itemgetter(*items): if len(items) == 1: item = items[0] def g(obj a = [0, 1, 2, 3, 4] x = itemgetter(1) print(x(a)) # 1 x = itemgetter(1, 2) print(x(a)) # (1, 2)

    63220发布于 2020-12-24
领券