이 예제처럼 key로 전달된 람다 함수 내부에서는 원소 애트리뷰트에 접근하거나, 인덱스를 써서 값을 얻거나(원소가 시퀀스, 튜플, 딕셔너리인 경우), 제대로 작동하는 다른 모든 식을 사용할 수 있다.
심지어 문자열 같은 기본 타입의 경우에는 정렬하기 전에 key 함수를 사용해 원소 값을 변형할 수도 있다. 다음 예제는 lower 메서드를 사용해 리스트에 들어 있는 장소 이름을 소문자로 변환함으로써 첫 글자가 대문자든 소문자든 구분하지 않고 알파벳순으로 비교한다(이렇게 변환하는 이유는 문자열의 자연스러운 순서에서는 대문자가 소문자보다 더 앞에 오기 때문이다)..
places = ['home', 'work', 'New York', 'Paris'] places.sort() print('대소문자 구분:', places) places.sort(key=lambda x: x.lower()) print('대소문자 무시:', places) >>> 대소문자 구분: ['New York', 'Paris', 'home', 'work'] 대소문자 무시: ['home', 'New York', 'Paris', 'work']