私は先週尋ねたその1つのに似た質問があります: "Sorting dict items by key, beyond alphanumeric sorting"、アドホック機能
問題は同じであるが、今の私の辞書のキーは単に整数です:
私は「key_func」パドレイク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)]
:あなたは、私はタプルのこの順序付きリストを探してるの推測を持っているでしょうとして
>>>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)]
インガムが私を提案し、残念ながらこの機能は、文字列型のみの辞書キーで動作するようです:
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"が実際にどのように動作し、整数で動作させるために正しい修正が行われたかを説明していただければ幸いです。この方法で、私はPythonプログラミングの詳細を理解し、今日の私の問題を解決するだけでなく、 ありがとうございました!
前;とにかく、key_funcに関する質問の部分はオリジナルであり、以前は尋ねられていないようです。だから決定的には私の質問は完全に尋ねられておらず、あなたには前に答えていた! –