pythonについてです。
ファイルから辞書を作成するプログラムを組み込みましたが、うまくいきません。indexerrorというエラーメッセージが出てしまいます。
修正箇所をご指摘していただきたいと思います。
def read2dic(p,d):
・with open(p,"r") as f:
・・for l in f:
・・・s=l.replace("\n","").split("")
・・・d[s[0]]=int(s[1])
a={}
b={}
read2dic("test1.txt",a)
read2dic("test2.txt",b)
bkeys=b.keys()
for k,v in a.items():
・if k in bkeys:
・・bv=b[k]
・・del b[k]
・・a[k]=(v+bv)*4
・else:
・・a[k]=v*2
for k,v in b.items():
・a[k]=v*10
print(a)
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
質問意図とは関係ないかもしれませんが、下記のYouTubeチャンネルでPythonについて、基礎から応用まで解説してますので、是非ご覧ください
https://www.youtube.com/channel/UCXst4GwyI8yI8V8 …
No.2
- 回答日時:
split の引数は " " なのかな?
ならば、テキストが
a 1
b 2
とか、空白区切りになっていれば
動くはず。空白区切りが無かったり
'空行が有れば当然落ちる。
いずれにしても、エラーメッセージを全て付けて質問するのが
マナーですよ。
No.1
- 回答日時:
まず、エラーメッセージの読み方を覚えましょう。
エラーメッセージって、こんな風になってませんか?
Traceback (most recent call last):
File "????", line ??, in ?????
File "????", line ??, in ?????
File "????", line ??, in ?????
IndexError: list index out of range
これはトレースバックといって、エラーが発生した箇所がどのような順番で呼ばれたかが書いてあります。
FIle "????", line ?? でどのファイルの何行目かがわかります。
IndexErrorも、その後に簡単は説明があるはずです。
通常は、タプルやリストの添字(index)を指定したときに、その添字が基底の範囲を越えた(要素の数より大きいなど)で発生します。
そうして見ると、添字を使っているのは
d[s[0]]=int(s[1])
ここの s くらいです。
上記メッセージのファイル、行番号もここを指してませんか?
s=l.replace("\n","").split("")
で分割していますが、例えばファイルに空行(改行だけの行)があったりすると、splitできずに、s[1]が存在しないことになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Ruby パイソンでテキストファイルが読み込めない 1 2022/11/14 16:42
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- その他(プログラミング・Web制作) python 3.10で 同じlistに同じ構文で同じデータ代入した結果が異なる現象発生 7 2022/06/18 11:08
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- その他(プログラミング・Web制作) ColabでのPytorchのエラー 1 2022/11/19 20:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLファイルの読み込み
-
VBAでcsvファイルもシートもあ...
-
Excelマクロ 空白セルを無視し...
-
ダブルコーテーション付きでCSV...
-
VBAで複数のCSVからレコードセ...
-
ファイル名を変数で書きこむfwr...
-
fortranでNAのあるデータを読み...
-
バッチ処理 特定の文字以降を...
-
【ExcelVBA】300万件越えCSVか...
-
[コンパイルエラー 修飾子が不...
-
verilog HDLについての質問です...
-
エクセルの任意のシートをcs...
-
VB.netでShellExecuteがしたい
-
EXCEL→CSV保存時のダブルクォー...
-
【ruby】flockで掛けたロックを...
-
CSVデータの文字列置換
-
複数連番付きCSVデータの文...
-
[common lisp]データ読み込みに...
-
Ruby 改行文字の認識
-
INPUTタグ disabledの文字色を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# ファイルを読み込みlistvie...
-
SQLファイルの読み込み
-
C# ファイルパスを格納した配列...
-
ファイルの文字コード
-
ファイルサイズ
-
Rubyでバイナリファイルを編集...
-
perlです。配列ファイルをよみ...
-
pythonについてです。 ファイル...
-
バッチ処理 特定の文字以降を...
-
【ExcelVBA】300万件越えCSVか...
-
Excelマクロ 空白セルを無視し...
-
ダブルコーテーション付きでCSV...
-
VBAでcsvファイルもシートもあ...
-
ファイル名を変数で書きこむfwr...
-
Access VBA エラー2448について
-
VBA テキストボックスを選択状...
-
[コンパイルエラー 修飾子が不...
-
fortranでNAのあるデータを読み...
-
VB.netでShellExecuteがしたい
-
EXCEL→CSV保存時のダブルクォー...
おすすめ情報