Pythonでソートが効かないリストを文字列を操作してソートさせる
Pythonでソートが効かないリストを文字列を操作してソートさせる [‘01234_B.jpg?X=n…’,‘12340_A.jpg?X=n…’,& […]
Filter by Category
Pythonでソートが効かないリストを文字列を操作してソートさせる [‘01234_B.jpg?X=n…’,‘12340_A.jpg?X=n…’,& […]
PythonでXserverからメール送信 レンタルサーバーで処理が終わった時や進捗を確認したいときにPythonでメールを送る方法です。今回はXserverでPythonを実行していますが、他のレンタルサーバーでもホス […]
UnicodeEncodeError: ‘ascii’ codec can’t encode Pythonのprint() 関数で文字列を出力する時に以下の様なUnicodeEncod […]
PyCharmとDockerの開発環境でのコードフォーマット 14インチのMacBook Proを新調してから開発環境をPyCharmとDockerで統一することにしました。Dockerはコンテナ単位で環境構築ができるの […]
ツイートを位置情報でプロットして時系列に纏めるtapiokaHeatmapの解説 今回はタピオカのツイート数を位置情報でプロットして時系列に纏めるソースコードについて解説する。 ソースコードは下記のgithubにあるので […]
pipenv shellをしてもactivateできない pipenvで作った仮想環境に出たり入ったりを繰り返していると、pipenv shellをしても以下のようにShell for UNKNOWN_VIRTUAL_E […]
WARNING: `pyenv init -` no longer sets PATH. pyenvが入っているzsh環境(Mac)でターミナルの起動時に以下のエラーが出るようになりました。今回はDjangoのプロジェク […]
40分でUbuntu Nginx PostgreSQL Django Gunicornの環境構築 VPSへのログイン(新規タブ) OSの初期設定(アップデート、アップグレード) 新規ユーザーを追加 新しく追加したユーザー […]
OpenCVで複数の動画を連結する 複数の動画素材を結合したり、GoProで長時間撮影した時に約4GB毎に分割される動画ファイルを結合して一つの動画を書き出す方法です。 コードはGitHubリポジトリにあげています。 開 […]
Pythonでファイルをアップロードする 画像をPOSTして結果を返すプログラムやファイルをアップロードして機械学習の推論を試す時に、ブラウザからFormを使ってアップロードすることもできますが、Pythonでファイルの […]
前回の内容が古くなってしまったので2021年版に更新します。 Dockerを使ってシンプルなDjangoとPostgreSQLの開発環境を構築する方法の2021年版です。以下の点が前回より変わった点です。・Volumeを […]
Pythonのrandomモジュールでランダムな小数・整数を生成 Pythonで乱数(ランダムな小数や整数)が生成できる、randomモジュールの使い方を説明します。 開発環境 float型の乱数を生成(1) float […]
Pythonのdatetimeで日付、時間の計算(2) 前回からの続きです。 今回は、曜日を取得したり、特定の曜日の日付を取得します。後半は文字列とdatetimeの変換について説明します。 開発環境 本日の曜日を取得 […]
Pythonのdatetimeで日付、時間の計算(1) Pythonには日付や日時を扱うdatetimeモジュールがありますが、日付の取得・計算にはtimedeltaを使います。 開発環境 現在の日付、時刻を取得 日付の […]
Pythonのdatetimeで日付や時刻を扱う Pythonには日付や日時を扱うdatetimeモジュールがあります。今回はこのdatetimeモジュールを解説します。 開発環境 現在の日付を取得 現在の時刻を取得 現 […]
psycopg2がインストールできずエラーになる DjangoでPostgreSQLに接続するために、以下のコマンドでpsycopg2をインストールしたところ、以下のエラーが発生した時の対処法です。 エラー 実際には…の […]
多次元配列から最大値、最小値を取得 Pythonで複数の配列からなる多次元配列から最大値、最小値を取得する方法です。一次元配列も同じやり方で最大値、最小値を取得可能です。 モジュールのインストール ソースコード arr1 […]
Pythonで文字列をリスト化して一文字づつ処理 Pythonで文字列をリスト化して一文字づつ処理する方法です。サンプルでは一文字づつ文字をshift-jisに変換して、変換できない文字を表示します。 開発環境 ソースコ […]
PillowでPNGファイルを変換するときの背景処理 PillowでPNGファイルをJPGに変換するときに、背景が透過のファイルを変換すると透過部分が黒くなったり、不自然な途切れ方をしたりといった時の対処方法です。 開発 […]
名前に現在時刻を入れたファイルが連番かどうか判定(後半) 前回からの続きです。 前回は連番になっていたらまとめてリスト化しましたが、今回はまとめたファイルを動画に変換して書き出します。 コードはGitHubリポジトリにあ […]
[‘01234_B.jpg?X=n…’,
‘12340_A.jpg?X=n…’,
‘00123_C.jpg?X=n…’,
‘34012_E.jpg?X=n…’]のように文字列の途中にABCDや1234といったキーになる文字列がある場合はlist.sort()メソッドでソートしても
[‘00123_C.jpg?X=n…’,
‘01234_B.jpg?X=n…’,
‘12340_A.jpg?X=n…’,
‘34012_E.jpg?X=n…’]となってしまい意図したソートができません。
順不同リストを文字列中の値(_A、_B、_C、_E)をキーに
[‘12340_A.jpg?X=n…’,
‘01234_B.jpg?X=n…’,
‘00123_C.jpg?X=n…’,
‘34012_E.jpg?X=n…’]のようにソートする場合は、一度辞書型に変換してからソートしてリスト化することでソート可能です。
random_image_list = ['01234_B.jpg?X=n...', '12340_A.jpg?X=n...', '00123_C.jpg?X=n...', '34012_E.jpg?X=n...']
image_list = []
image_dict = {}
for image in random_image_list:
image_split = image.split(".jpg")[0]
image_dict[str(image_split)[-1]] = image
image_dict_sort = sorted(image_dict.items())
for img in image_dict_sort:
image_list.append(img[1])
print(image_list)
['12340_A.jpg?X=n...', '01234_B.jpg?X=n...', '00123_C.jpg?X=n...', '34012_E.jpg?X=n...']
image_split = image.split(".jpg")[0]
.jpgを起点に文字列を分解して.jpg以前の文字列を取得
image_dict[str(image_split)[-1]] = image
分解した文字列からキーとなる最後の文字(ABCE)をdictのkeyに代入
valueにリストの文字列を代入
image_dict_sort = sorted(image_dict.items())
dictをソート
image_list.append(img[1])
ソートするとタプルのリストに変換されるので指定した値だけを取得してリスト化
群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。
メーリングリストに登録するとファントムの最新情報をお届けします
お客様のメールアドレスを共有することはありません
Comments