実現したいこと
ここに実現したいことを箇条書きで書いてください。
- ▲▲機能を動作するようにする
pythonにて
文字列+数値で構成されているリストをソートしたい。
ソートのkeyは正規表現で指定した文字でソートしたい。
ここに質問の内容を詳しく書いてください。
(例)
以下のプログラム(行番号を追記しました)でリストl(要素数3)にてXに続く文字で昇順にソートしたい。
1:import re
2:
3:l = ['ABXR9876.txt', 'CDXF0001.txt', 'EFXG100.txt']
4:print(sorted(l ,key = lambda s: chr(re.search(r'[A-Z]{2}X(.)',s).group(1))))
エラーメッセージ 実行すると4行目でエラーがでた。 TypeError: an integer is required (got type str)
該当のソースコード
python
1import re 2 3l = ['ABXR9876.txt', 'CDXF0001.txt', 'EFXG100.txt'] 4print(sorted(l ,key = lambda s: chr(re.search(r'[A-Z]{2}X(.)',s).group(1))))
試したこと
ここに問題に対して試したことを記載してください。
4行目を以下のコードにすると数字でのソートはできた。
print(sorted(l, key=lambda s: int(re.search(r'\d+', s).group())))
#['CDXF0001.txt', 'EFXG100.txt', 'ABXR9876.txt']
補足情報(FW/ツールのバージョンなど)
Spyder 4.0.1
Python 3.7.6 64-bit | Qt 5.9.6 | PyQt5 5.9.2 | Windows 10
にて実施
ここにより詳細な情報を記載してください。

回答2件
あなたの回答
tips
プレビュー