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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

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

Q&A

解決済

2回答

541閲覧

辞書について(多分めちゃくちゃ簡単なんだろうと思います)

Konya

総合スコア10

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

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

0グッド

0クリップ

投稿2022/10/31 07:03

編集2022/11/07 04:01

前提

辞書をちょっとしたゲームを作るのに使おうとしたときに思ったことです

下記のコードでは
print(odai_choose["1"])
と打てば
['りんご', 'apple']
と帰ってくるのは理解しています。

ただ、それを変数で行うとエラーが出てしまいます。何をどうすればいいのでしょうか?
たぶん、知識不足なだけなのでよかったら教えてください。

実現したいこと

・変数で['りんご', 'apple']の解答が得たい。

発生している問題・エラーメッセージ

多分いらないだろうけど一応はっときます。

KeyError Traceback (most recent call last) <ipython-input-10-00b1ae25d199> in <module> 8 9 ---> 10 odai_people = odai_choose[people] 11 odai_zinro = odai_choose[zinro] KeyError: 1

該当のソースコード

odai_choose = {"1":["りんご","apple"], "2":["みかん","orange"] } people = 1 zinro = 2 odai_people = odai_choose[people] odai_zinro = odai_choose[zinro]

補足情報(FW/ツールのバージョンなど)

一応、ワードウルフというゲームのお題をexcelで自動的に記入して配布するコードをこれからやってこうと思ってます。

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

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

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

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

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

melian

2022/10/31 07:12 編集

people = 1 zinro = 2 を、 people = '1' zinro = '2' に変更してください。(辞書のキーは整数ではなく文字列)
Konya

2022/10/31 07:26 編集

print入れたら帰ってきましたw ありがとうございます!
guest

回答2

0

Python3.10

1odai_choose = {"1":["りんご","apple"], 2 "2":["みかん","orange"] 3 } 4 5 6people = "1" 7zinro = "2" 8 9 10odai_people = odai_choose[people] 11odai_zinro = odai_choose[zinro]

""でくくってるのでキーは"文字列"です。Stringとintを比較してはいけません。

Wandboxでエラー出なかったので単純にキーを整数型にするのもいけそうな気がしますけどね

投稿2022/10/31 07:20

pig_vba

総合スコア807

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

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

Konya

2022/10/31 07:22

なるほどです! ありがとうございます! str() で囲むことしか考えてなかったけどたしかに、キー変えても行けそうですね。 やってみます!
guest

0

ベストアンサー

まず、これはリストではなく辞書(dict)です。

python

1odai_choose = {"1":["りんご","apple"], 2 "2":["みかん","orange"] 3 }

辞書には、キーとそれに対応する値を関連付けて保存できます。
そして、そのキーは、"1"と"2"ですがこれは両方文字列です。

さて、こちらではpeople と zinro に 数値の 1 と 2 を入れています。

python

1people = 1 2zinro = 2

pythonに限らず、大抵の言語では、文字列と数値が異なるデータです。
なので、

python

1odai_people = odai_choose[people] 2odai_zinro = odai_choose[zinro]

として、oda_choose に 数値を1キーとしたものを取り出すように指定していますが、1というキーはありません(KeyError: 1」と言われているわけです。

投稿2022/10/31 07:11

TakaiY

総合スコア12666

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

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

Konya

2022/10/31 07:20

なるほどです。ということは、 people = str(1) zinro = str(2) ってしたら文字列に変換できるのでいいんですかね?
TakaiY

2022/10/31 07:51

はい。 それでもOKですが、""で囲むことで文字列を表わすことができますから、 people = "1" zinro = "2" の方が自然ですね。 str() は、変数に数値などが入っていて、それを文字列にしたいときに使うことが多いですね。 people = str(n) とか。
Konya

2022/11/07 03:59

返信が遅くなってすみません。 str()は変数が多いんですね!理解しました! 今回は自然なほうを使おうと思います! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問