質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

797閲覧

Pythonのリストの定義を少ない行数で行いたい

TakayukiMoriya

総合スコア26

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/10/02 08:28

PythonのPillowを使って画像処理をしております。

1.画像が複数格納されているフォルダを選択してパスを取得(img_dir_path)
2.格納されている画像をリスト化
3.そのリストをアルファベット順にソート
4.先頭から順番に画像処理

以上の処理を行うコードを自力で書いたのですが、3行目以降が長くなってしまいました。
この0~8までの連番になっている部分をfor range文などで短くすることは可能なのでしょうか?

pyhon

1directory = os.listdir(img_dir_path) 2sorted_directory = sorted(directory ) 3 4directory0 = sorted_directory[0] 5directory1 = sorted_directory[1] 6directory2 = sorted_directory[2] 7directory3 = sorted_directory[3] 8directory4 = sorted_directory[4] 9directory5 = sorted_directory[5] 10directory6 = sorted_directory[6] 11directory7 = sorted_directory[7] 12directory8 = sorted_directory[8]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2019/10/02 08:33

なぜsorted_directoryをそのまま使いたくないのでしょうか?
TakayukiMoriya

2019/10/02 08:45

深い理由はありません!確かに、代入しないでそのまま使っても問題なかったです。そうしましたら、sorted_directory[0]〜[8]が全部で9行になってしまっているのを少ない行にまとめたい、というのが質問の本意となります。
t_obara

2019/10/02 09:41

>質問の本意となります。 「4.先頭から順番に画像処理」についてでしょうか? であれば、for in でsorted_directoryを参照して画像処理をすれば良いかと。
guest

回答3

0

ベストアンサー

後の処理の中で、

sorted_directory[0]

の添字の部分を変数にして使用するのが一般的かと思います。

directory0などの変数は必要ないかと思います。

投稿2019/10/02 08:47

meg_

総合スコア10580

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

directory(i) = sorted_directory[i]
↑このような形式でiを1〜8まで代入するような定義が難しかったため、一度格納されている画像すべてが記述されたリストを生成して、そこからwhile文を使って1つずつ取り出して画像処理するという方法で解決しました!

python

1while i < len(list): 2 back_im.paste(Image.open(os.path.join(img_dir_path,list[i])), (0, 0)) 3 back_im.paste(Image.open(os.path.join(img_dir_path,list[i+1])), (200, 0)) 4 ・ ・ 5 ・ ・ 6 ・ ・

投稿2019/10/13 01:03

TakayukiMoriya

総合スコア26

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

真似してはいけませんが、こんな書き方もできるようです。

python

1directory0, 2directory1, 3directory2, 4directory3, 5directory4, 6directory5, 7directory6, 8directory7, 9directory8 = sorted_directory

python

1directory0, directory1, directory2, directory3, directory4, directory5, directory6, directory7, directory8 = sorted_directory

真似してはいけません。

投稿2019/10/06 12:33

siruku6

総合スコア1382

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問