teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2021/08/03 02:04

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -2,4 +2,42 @@
2
2
 
3
3
  とすれば、text3.txtは作成できます。(tags_listを正しく定義する必要はあります。)
4
4
 
5
- ただし、もう少し簡単でわかりやすい書き方もありますので、改良した方が良いです。
5
+ ただし、もう少し簡単でわかりやすい書き方もありますので、改良した方が良いです。
6
+
7
+ 追記 改良といっても手がかりがないと難しいでしょうから、サンプルを書いておきます。
8
+
9
+ - 考え方
10
+ いろいろなことを同時にやると問題点が見えません。
11
+ 読み込み、連結、書き出しを分けた方が間違いが少なくなります。
12
+
13
+ - サンプル
14
+
15
+ 以下の例の三つの関数、file2listとcombine_listsとlist2fileを実装すればわかりやすいコードになるでしょう。
16
+
17
+ 読み込み
18
+ ```python
19
+ >>> print(file2list.__doc__)
20
+ ファイルを読み込んで、各行から改行を取り除いた文字列のリストを返す。
21
+ >>> fruits = file2list('text1.txt')
22
+ >>> print(fruits)
23
+ ['Apple', 'Orange', 'Peach', '', 'Orange', 'Apple', 'Peach']
24
+ >>> exists = file2list('text2.txt')
25
+ >>> print(exists)
26
+ ['Yes', 'No', 'Yes', '', 'No', 'No', 'Yes']
27
+ ```
28
+ 連結
29
+ ```python
30
+ >>> print(combine_lists.__doc__)
31
+ 文字列からなる同じ長さの二つのリストを受取り、それぞれのリストの文字列を空白でつないだ文字列のリストを返す。
32
+ ただし、左の文字列が空文字列の場合は対応する出力中の文字列は空文字列とする。
33
+ >>> outputs = combine_lists(fruits, exists)
34
+ >>> print(outputs)
35
+ ['Apple Yes', 'Orange No', 'Peach Yes', '', 'Orange No', 'Apple No', 'Peach Yes']
36
+ ```
37
+ 書き出し
38
+ ```python
39
+ >>> print(list2file.__doc__)
40
+ リストに含まれる文字列を一行にひとつずつファイルを書き出す。
41
+ >>> list2file(outputs, 'text3.txt')
42
+ 59
43
+ ```

1

説明追加

2021/08/03 02:04

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  f.write(fruits_list[i] + ' ' + exist_list[i] + '\n')
2
2
 
3
- とすれば、text3.txtは作成できます。
3
+ とすれば、text3.txtは作成できます。(tags_listを正しく定義する必要はあります。)
4
4
 
5
5
  ただし、もう少し簡単でわかりやすい書き方もありますので、改良した方が良いです。