DESIGN / CODE / INFRA / AI

解説

2より10が先に来る?AIの並べ替えで数字と文字列を分けよう

数の小さい順に並べたつもりが、10、100、2になった。数字の見た目でも、文字列として比べているのかもしれないよ。

2より10が先に来る?AIの並べ替えで数字と文字列を分けよう
保存リストを見る →
この記事の道しるべ 5項目

数の小さい順に並べたつもりが、10、100、2になった。数字の見た目でも、文字列として比べているのかもしれないよ。

このページでは、数値の順序と文字列の順序を小さな例で知る。用意するのは架空の2、10、100だけ。実際の顧客番号や、元の表を直接書き換える必要はないよ。

数として見るか、文字として見るか

2と10を数で比べるなら、2が小さい。一方、文字列の並びでは、最初の文字などから順に比較する。Pythonの通常の文字列の順序では、10や100が2より先になる。

扱い この例の並び
数値 2、10、100
文字列 10、100、2

すべてのソフトが同じ並べ方とは限らない。言語や地域に合わせた順序、数字を自然に扱う並べ方などもあり、使う機能の仕様を見ることが大切だよ。

Pythonで同じ値を比べる

values = ['2', '10', '100']
print(sorted(values))
print(sorted(values, key=int))

最初は['10', '100', '2']、次は['2', '10', '100']になる。二つ目は比較のキーを整数へ変換するけれど、返すリストの要素は元の文字列だよ。見た目の値が同じでも、比較する方法を変えた例なんだ。

IDを勝手に数へ変えない

001と1が、別の正式な番号として使われる場合もある。電話番号や郵便番号も、計算する数とは限らない。数値化すると先頭の0などを失うことがあるので、目的を確認しよう。

空欄、単位付きの12cm、桁区切り、マイナスなどがある表では、変換できる条件も別に必要。AIが都合よく値を補っていないか確かめたいね。

AIへ頼むときの確認

  1. 並べたい列を指定する。
  2. 数値・文字列・日付のどの意味で比べるか決める。
  3. 元の表記を残すよう伝える。
  4. 空欄や不正な値を別に確認する。
  5. 同じ値のときの順序も、必要なら決める。

期待するのは、目的の順序になり、元の値や行の対応が失われないこと。並べ替え前の控えも残しておこう。

同点の扱いは上位3件と同点のルール、行の対応を守る操作は表の並べ替えへ。

参照した公式資料

確認日:2026年10月24日。

参考・出典

公開と変更の記録
  • :初回公開

日時は日本時間です。記載のある変更は、確認できた編集記録に基づきます。更新日の違いだけから変更内容を推測して載せることはありません。

更新・訂正の方針 →

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。