Чем отличается 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. Первый вариант кода рабочий
Источник: Stack Overflow на русском