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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

4回答

4416閲覧

pythonでdelを使用したときに出るTypeErrorについて

yamisbot

総合スコア16

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/12/08 09:13

python3.6で以下のソースを実行したところ、TypeErrorが出ましたので解決法を教えていただきたいです。

python3

1sgs = {"switcherA": {}, "switcherB": {}} 2msg = 'qwerty12' 3sgs["switcherA"] = msg 4del sgs["switcherA"][msg]

Error

1Traceback (most recent call last): 2 File "<stdin>", line 1, in <module> 3TypeError: 'str' object does not support item deletion

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

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

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

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

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

guest

回答4

0

投稿2018/12/08 09:38

y_waiwai

総合スコア88163

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

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

0

自己解決

自己解決しました。
お騒がせしました。

投稿2018/12/08 12:57

yamisbot

総合スコア16

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

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

guest

0

こんな漢字で、

Python

1>>> del sgs["switcherA"] 2>>> sgs 3{'switcherB': {}}

または

Python

1>>> sgs["switcherA"] = {} 2>>> sgs 3{'switcherA': {}, 'switcherB': {}}

投稿2018/12/08 09:44

hichon

総合スコア5739

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

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

0

エラーメッセージの「item deletion」というのは、辞書などで特定のキーに対応する要素を削除するような操作を意味します。

python

1>>> d = {"key":"value"} 2>>> d 3{'key': 'value'} 4>>> del d["key"] 5>>> d 6{}

del sgs["switcherA"][msg]と書いた場合、sgs["switcherA"]が評価されてこれに代入されている'qwerty12'という文字列になり、文字列に対する「item deletion」を行おうとします。しかし文字列型で「item deletion」はサポートされていないので、エラーになります。

解決方法ですが、どんな結果を期待しているのかによります。また、そもそもそれ以前の処理が意図と合っているかもわからないので、安易にこうすれば良いとアドバイスすることは難しいです。

投稿2018/12/08 09:39

hayataka2049

総合スコア30939

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問