web-dev-qa-db-ja.com

Pythonで変数に辞書値を割り当てるにはどうすればよいですか?

私はプログラミングに関してはアマチュアですが、私はPythonに挑戦しています。基本的に私ができることは、辞書の値に数学を使用することです。辞書の値を変数に割り当ててから、新しい値を辞書に割り当てることが、私がそれを行うと考える唯一の方法です。このようなもの:

my_dictionary {
    'foo' = 10,
    'bar' = 20,
    }

variable = my_dictionary['foo']
new_variable += variable
my_dictionary['foo'] = new_variable

しかし、この方法で変数を割り当てようとすると、構文エラーが発生します。これを行うより良い簡単な方法はありますか?

編集:また、私はこれを例として使用しています。これがプログラム全体ではなく、コードのブロックであるとしましょう。新しい変数が宣言されていないという事実はまったく関係ありません。辞書の値に対して計算を実行する方法を知りたいだけです。また、自分のコードがある関数の外部で辞書にアクセスしようとしています。

9

コードにさまざまな誤りがあります。最初に、最初の行の=を忘れました。さらに、dict定義では、:を使用して、キーを値から分離する必要があります。

次に、何かを追加する前に、まずnew_variableを定義する必要があります。

これは動作します:

my_dictionary = {'foo' : 10, 'bar' : 20}

variable = my_dictionary['foo']
new_variable = 0 # Get the value from another place
new_variable += variable
my_dictionary['foo'] = new_variable

ただし、new_variableをdictエントリに直接追加するだけです。

my_dictionary = {'foo' : 10, 'bar' : 20}

variable = my_dictionary['foo']
new_variable = 0 # Get the value from another place
my_dictionary['foo'] += new_variable
13
nkr

辞書キーと変数名を照合できるので、次の方法が好きです。この例は、charを対応する変数名と照合する方法を示しています(その変数名は他の変数によっても決定されます)。

va1 = 50
val2= 20

a = val + 1 * val2
b = val + 2 * val2
space = val + 3 * val2

my_dictionary = {
'a':a,
'b':b,
' ':space
}

msg = "aB "
for char in msg:
    try:
        char = char.lower()
        print my_dictionary [char]
    except:
        print my_dictionary [char]

出力:

70

90

110

0
Dylan Kapp

このコードは変数my_dictionaryを割り当てません。試してください:

my_dictionary = {
    'foo'...

また、dictのキーと値の初期化にはコロンを使用する必要があります。例:'foo' : 10

編集:言及するのを忘れた、+=を使用して変数を変更する場合、変数は事前に存在している必要があります。

0
jma127

辞書を定義すると、すべて間違っているため、SyntaxErrorが表示されます。別のPythonプログラム(またはドキュメンテーション)を見て、翼を振るのではなく、そこで示されている方法で試してみてください。

my_dictionary = {'foo': 10, 'bar': 20}

数学の部分は構文的には問題ありませんが、必要以上に難しくなっています。

my_dictionary['foo'] += whatever
0
kindall

存在しない変数を操作しようとしています

new_variable += variable

new_variableが定義されていないため、インクリメントできません。単に試してください。

my_dictionary['foo'] += my_dictionary['foo']

My_dictionaryは単なる擬似コードであり、実際にコードで使用している定義ではないと想定しています。それ以外の場合も無効です。

0
Aesthete