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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fgetsの処理を詳しく説明してく...
-
C# ファイルを読み込みlistvie...
-
ダブルコーテーション付きでCSV...
-
VBAでcsvファイルもシートもあ...
-
【ExcelVBA】300万件越えCSVか...
-
verilog HDLについての質問です...
-
Excelマクロ 空白セルを無視し...
-
「&」 「<<」 「|」 につ...
-
バッチ処理 特定の文字以降を...
-
VBA テキストボックスを選択状...
-
Sikulix2.0.5(Jython2.7.3)でcs...
-
fortranでNAのあるデータを読み...
-
型の値をDataGridViewセルに変換...
-
rubyを用いたCSVファイルの分割...
-
CSVデータの文字列置換
-
Rubyでファイルの名前をリネイ...
-
VB.netでShellExecuteがしたい
-
pythonによるcsv出力がうまくい...
-
FileListBoxで出すものを絞り込...
-
複数のファイルをまたぐエクセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLファイルの読み込み
-
C# ファイルを読み込みlistvie...
-
質問ですが・・
-
【ruby】zipファイルデータをST...
-
ネット上にあるファイルの更新...
-
MacRubyでのファイル読み書きが...
-
awkで別のファイルを参照して、...
-
Rubyでバイナリファイルを編集...
-
VBAでcsvファイルもシートもあ...
-
ダブルコーテーション付きでCSV...
-
バッチ処理 特定の文字以降を...
-
Excelマクロ 空白セルを無視し...
-
【ExcelVBA】300万件越えCSVか...
-
VBAで複数のCSVからレコードセ...
-
INPUTタグ disabledの文字色を...
-
VBA テキストボックスを選択状...
-
fortranでNAのあるデータを読み...
-
ファイル名を変数で書きこむfwr...
-
Access VBA エラー2448について
-
[コンパイルエラー 修飾子が不...
おすすめ情報