📜  python中的operator.itemgetter(1)(1)

📅  最后修改于: 2023-12-03 15:34:25.709000             🧑  作者: Mango

Python中的operator.itemgetter(1)

Python标准库中的operator模块提供了一系列对序列和元组进行操作的工具函数,其中之一就是itemgetter函数。在Python中,可以使用itemgetter函数来对元组或列表进行操作,该函数会返回一个函数对象,该函数对象可以作为参数传递给sorted、min、max、collections等函数,用于获取元素的值。

itemgetter函数的定义

itemgetter函数的定义如下:

operator.itemgetter(*items)

itemgetter函数返回一个可调用对象,用于从可迭代对象中获取指定索引或键所对应的值。items可以是单个整数,多个整数或字符串。如果items是多个整数或字符串,则返回一个元组。

例子

下面是一个使用itemgetter函数的例子,其中items是一个元组:

import operator

data = [('a', 1), ('b', 2), ('c', 3)]
sorted_data = sorted(data, key=operator.itemgetter(1))
print(sorted_data)

输出为:

[('a', 1), ('b', 2), ('c', 3)]

在这个例子中,我们使用itemgetter(1)函数来对data列表中的元组进行排序,指定key参数为itemgetter(1)即可。这样就会按照元组中第二个元素的值来排序。

多个参数

如果items参数传入多个参数,则返回的是一个元组:

import operator

data = [('a', 1, 2), ('b', 2, 1), ('c', 3, 3)]
sorted_data = sorted(data, key=operator.itemgetter(1, 2))
print(sorted_data)

输出为:

[('a', 1, 2), ('b', 2, 1), ('c', 3, 3)]

在这个例子中,我们使用itemgetter(1, 2)函数来对data列表中的元组进行排序,指定key参数为itemgetter(1, 2)即可。这样就会先按照元组中第二个元素的值来排序,如果第二个元素相同时,则按照第三个元素的值来排序。

字符串参数

itemgetter函数不仅可以接受整数作为参数,还可以接受字符串作为参数,用于获取字典中指定键所对应的值:

import operator

data = [{'a': 1, 'b': 2}, {'a': 2, 'b': 1}, {'a': 3, 'b': 3}]
sorted_data = sorted(data, key=operator.itemgetter('b'))
print(sorted_data)

输出为:

[{'a': 2, 'b': 1}, {'a': 1, 'b': 2}, {'a': 3, 'b': 3}]

在这个例子中,我们使用itemgetter('b')函数来对data列表中的字典进行排序,指定key参数为itemgetter('b')即可。这样就会按照字典中'b'键所对应的值来排序。

总结

itemgetter函数是对序列和元组进行操作的一个工具函数,用于获取指定索引或键所对应的值。itemgetter函数有很多应用场景,可以用于对列表、元组和字典进行排序、查找等操作,非常的方便实用。