내가 지난 주에 요청하는 것과 유사한 질문이 있습니다 : "Sorting dict items by key, beyond alphanumeric sorting", 임시 기능
문제는 같은 글의,하지만 지금 내 딕셔너리의 키는 단순히 정수 :
>>>lis_nodiz = list(nodiz.items()) #list of dict items as tuples
[(2, 316),
(3, 66),
(4, 37),
(5, 15),
(6, 10),
(7, 4),
(8, 3),
(9, 1),
(10, 2),
(11, 1),
(12, 1),
(45, 1),
(109, 1),
(16, 1),
(126, 1)]
당신은 내가 튜플의 정렬 된 목록 찾고 있어요 추측 것 같이 나는 "key_func"Padraic Cunn를 재사용하는 것을 시도했다
[(2, 316),
(3, 66),
(4, 37),
(5, 15),
(6, 10),
(7, 4),
(8, 3),
(9, 1),
(10, 2),
(11, 1),
(12, 1),
(16, 1),
(45, 1),
(109, 1),
(126, 1)]
을 잉햄 불행하게도이 기능은 문자열 형식의 DICT 키와 함께 작동하는 것 같다, 저를 제안 :
def key_func(x):
"""'a0p12' -> (0, 12)"""
return tuple(int("".join(v)) for k,v in groupby(x[0], key=str.isdigit) if k)
>>>lis_nodiz_od = sorted(nodiz.items(), key=key_func)
TypeError: expected string or buffer
가 어떻게 기능을 수정, 또는 나는 나의 목적을 얻을 수있는 또 다른 방법으로 할 수 있습니까? 누군가가 "key_func"가 실제로 어떻게 작동하는지, 그리고 정수로 작동하게하기 위해 올바른 수정을했는지를 설명해 주시면 감사하겠습니다. 이 방법을 통해 파이썬 프로그래밍에 대해 더 많이 이해할 수있을 것이고, 오늘의 내 문제를 해결할뿐만 아니라! 대단히 감사합니다!
전에; 어쨌든 key_func에 관한 질문의 일부는 원래이며 이전에 묻지 않은 것 같습니다. 그래서 결정적인 내 질문에 완전히 물어 보지 않고 대답하기 전에 .. 당신까지! –