Чем отличается operator.itemgetter от operator.getitem?
Писал вот такой код
import operator
tuples = [(1, 'd'), (2, 'b'), (4, 'a'), (3, 'c')]
print(sorted(tuples, key=operator.itemgetter(1)))
В процессе написания опечатался и вместо .itemgetter написал .getitem, в итоге было вот это -
import operator
tuples = [(1, 'd'), (2, 'b'), (4, 'a'), (3, 'c')]
print(sorted(tuples, key=operator.getitem(1)))
с которым код не сработал и выдал вот такую ошибку
TypeError: getitem expected 2 arguments, got 1
В документации ничего подробного нет. Поэтому решил спросить здесь у понимающих разницу между первым и вторым
P.S. Первый вариант кода рабочий
Ответы (1 шт):
Автор решения: wchistow
→ Ссылка
operator.getitem(lst, i) - это то же самое, что и lst[i]:
>>> import operator
>>> lst = [1, 2, 3, 4, 5]
>>> lst[2]
3
>>> operator.getitem(lst, 2)
3