🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

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

Q&A

1回答

669閲覧

Pythonにて2つのfor文をまとめたい

jazzmaster

総合スコア26

Python

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

0グッド

1クリップ

投稿2021/02/24 08:50

編集2021/02/24 11:21

python

1 target_list_1 = ['AAA', 'BBB'] 2 target_list_2 = ['CCC', 'DDD'] 3 target_list_3 = ['EEE', 'FFF'] 4 target_list_4 = ['GGG', 'HHH'] 5 target_list_5 = ['111', '222'] 6 target_list_6 = ['333', '444'] 7 target_list_7 = ['555', '666'] 8 9 10 #1#target_list_1の内容をtarget_list_1.txtへ書き込む 11 target_lists1 = [target_list_1] 12 for val1 in target_lists1: 13 row_list_A1 = myobject.extract_targetrows_method_A(val1) 14 start_row, end_row = row_list_A1 15 myobject.write_data((start_row - 1, end_row + 0), 'target_list/target_list_1.txt') 16 17 #2#target_list_2,3,4,5,6,7の内容をtarget_list_2.txtへ追記で書き込む 18 target_lists2 = [target_list_2,target_list_3,target_list_4,target_list_5,target_list_6,target_list_7] 19 for val2 in target_lists2: 20 row_list_A2 = myobject.extract_targetrows_method_A(val2) 21 start_row, end_row = row_list_A2 22 myobject.write_data((start_row - 1, end_row + 0), 'target_list/target_list_2.txt')

上記は想定通りに動くのですが、#1と#2の箇所をうまく1つにまとめてみたいなと考えています。
初心者な質問で申し訳ございませんが、ご教授いただければと思います。よろしくお願いいたします。

###追記###

Python

1 target_list_1 = ['AAA', 'BBB'] 2 target_list_2 = ['CCC', 'DDD'] 3 target_list_3 = ['EEE', 'FFF'] 4 target_list_4 = ['GGG', 'HHH'] 5 target_list_5 = ['111', '222'] 6 target_list_6 = ['333', '444'] 7 target_list_7 = ['555', '666'] 8 9 10 target_lists1 = [target_list_1] 11 target_lists2 = [target_list_2,target_list_3,target_list_4,target_list_5,target_list_6,target_list_7] 12   13  save_name1 = 'target_list/AAA.txt' 14  save_name2 = 'target_list/BBB.txt' 15 16 17 def save(target, save_name): 18 for val in target: 19 row_list_A1 = myobject.extract_targetrows_method_A(val) 20 start_row, end_row = row_list_A1 21 myobject.write_data((start_row - 1, end_row + 0), save_name) 22 23 24 save(target_lists1,save_name1) 25 save(target_lists2,save_name2)

defを使って実行できるようになったのですが、
save(target_lists1,save_name1)
save(target_lists2,save_name2)
の部分をもっときれいにできたりしますでしょうか?

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

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

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

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

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

guest

回答1

0

その部分だけ関数化しましょう。

Python

1def save(target : list, save_name : str) 2 for val in target: 3 row_list_A1 = myobject.extract_targetrows_method_A(val) 4 start_row, end_row = row_list_A1 5 myobject.write_data((start_row - 1, end_row + 0), save_name)

投稿2021/02/24 09:14

編集2021/02/25 21:20
stdio

総合スコア3307

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

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

jazzmaster

2021/02/24 09:45

defの部分をどう応用して書いていいのか分かりませんでした。すみません。。。
stdio

2021/02/24 09:59

いえいえ、よくあるミスです。 これからもアイデアがが思い浮かばない時は質問してきて下さい。 (ホントはこの程度ならパッと浮かばなきゃいけないのですが...)
jazzmaster

2021/02/24 10:13

初心者で申し訳ないです。実際どう関数を定義していいか分からないのです。
jazzmaster

2021/02/24 11:21

追記でdefを記載してみました。改善点がございましたらご教授いただければ幸いです。
退会済みユーザー

退会済みユーザー

2021/02/24 11:35

すごい細かいことですが、 save_nameの型ヒント、stringではなくstrでは?
stdio

2021/02/25 21:22

細かい人だ... でも、ありがとうございます。PythonのIDEが手元になかったのでテキトーに書いていました。 初心者にはよろしくない行為ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問