2014-02-28 3 views
3

각 항목의 형식이 "title, runtime"인 목록이 있습니다. 예 : "Bluebird, 4005"문자열의 숫자 뒤에있는 목록 정렬

각 항목에 대한 문자열의 런타임 부분에 따라 파이썬에서 어떻게 그 목록을 정렬 할 수 있습니까?

정규식을 사용하지 않고이를 수행 할 수있는 방법이 있습니까?

답변

10
words_list = ["Bluebird, 4005", "ABCD, 1", "EFGH, 2677", "IJKL, 2"] 
print sorted(words_list, key = lambda x: int(x.split(",")[1])) 
# ['ABCD, 1', 'IJKL, 2', 'EFGH, 2677', 'Bluebird, 4005'] 
+0

첫 번째 부분에 두 개 이상의 단어가있는 경우 작동하지 않습니다. "Bluebird pt2, 4005". 나는 그 질문에 그 것을 명시해야했다. 새로운 기준에 맞게 솔루션을 수정하려면 어떻게해야합니까? – DSF

+0

'int (x.split (', ') [1]'와 동일합니다.) – DSF

+0

@ D.Singh 실제 데이터에 중간에 공백이 있으면 실패 할 수 있습니다. 내 대답이 업데이트되었습니다. now. – thefourtheye