[解決済み] Python 3 でカスタム比較関数を使用するには?
2022-08-29 10:29:57
質問
質問 Python 2.x で、sortedと.sort関数にカスタム関数を渡すことができました。
>>> x=['kar','htar','har','ar']
>>>
>>> sorted(x)
['ar', 'har', 'htar', 'kar']
>>>
>>> sorted(x,cmp=customsort)
['kar', 'htar', 'har', 'ar']
なぜなら 私の 言語では、コンポーネントはこの順序で来ます。
"k","kh",....,"ht",..."h",...,"a"
しかし
Python 3.x
を渡すことができなかったようです。
cmp
キーワード
>>> sorted(x,cmp=customsort)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'cmp' is an invalid keyword argument for this function
何か代替案があるのでしょうか、それとも自分でソート関数も書いた方がいいのでしょうか?
注:"k", "kh" などで簡略化しています。実際の文字はUnicodesで、さらに複雑で、子音の前後に母音が来ることもありますが、カスタム比較関数を作ったので、その部分は大丈夫です。ただ、問題は、私のカスタム比較関数をsortedまたは.sortに渡すことができなかったことです。
どのように解決するのですか?
を使用します。
key
引数を使用します (そして
レシピ
をどのように変換するかについては、古い
cmp
関数から
key
関数に変換します)。
functools
は、関数
cmp_to_key
で述べた
docs.python.org/3.6/library/functools.html#functools.cmp_to_key で言及されています。
関連
-
[解決済み] 山積みされた靴下を効率よく組み合わせるには?
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] Pythonでコード行間にかかる時間を測定するには?
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
-
[解決済み] 新しいpip backtrackingの実行時問題の解決
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。