2016-04-15 6 views
0

に追加することにより、辞書を拡張私が持っている現在の辞書は、の形式になります。(私はちょうど私の辞書が似ているフォーマットを表現するために、物事を使用しています、これはそれが実際にどのように見えるかではありません)tupled値

dict={"a":(1,2,3),"b":(2,3,4),"c":(3,4,5)} 
dict2={1:(1,1,2),2:(2,2,3),3:(3,3,4)} 

私はそれに追加しようとしています。私は平均を計算し、最初の関数からその平均を引いて、それを私の辞書の値でタプルに加える2番目の関数を作成する関数を持っています。だから、平均的には「A」の4だった場合、私はそれが私が返さ追加して行くとどこがわからないんだけど、ここから

def func1(dict, dict2, number): 
    if number in dict: 
     for num in dict.values(): 

     #return sum after iteration of sum through num[0] to num[2] 

def func 2 (dict1, dict2) 

    if number in dict: 
     new_val_to_add= func1(dict, dict2, number) 

この{"a":(1,2,3,4)}などのように見えるようにするためにそれを追加したいと思います値をタプルに追加し、追加された値でdictを出力することができます。私はおそらく、最初の辞書のタプルをリストに変換し、それを辞書の各キーを繰り返して、それを最後にタプルに変換し直すことを考えていました。これがこれについての正しい道でしょうか?

+0

タプルは(HTTP [不変]です.com/questions/1538663/why-are-python-strings-and-tuples-are-made-immutable)があります。あなたがしようとしているものについては、追加している古いデータと新しいデータのデータを含む新しいタプルを作成する必要があります。 – idjaw

+0

はい、私はタプルが不変であることを理解しています。なぜそれをリストに変換することを考えていたのですか:list(dict.values())そしてそれを最後に戻しますタプルを辞書に返す前に – Nick

+2

値を絶えず変更しているので、データ構造を変更するのが面白くなりませんか? – idjaw

答えて

1

値を変更可能にする場合は、タプルの代わりにリストを使用してください。

あなたはしかし、+を使用して2つのタプルを組み合わせることができます:

>>> (1, 2, 3) + (4,) 
(1, 2, 3, 4) 

は、私はあなたのコード例以下の問題が発生したんだけど、あなたの説明以下の辞書をあなたはこのようにそれを行うことができます。

>>> d1 = {'a': (1, 2, 3)} 
>>> d1['a'] += (4,) 
>>> d1 
{'a': (1, 2, 3, 4)} 

または、代わりにリストを使用して:// stackoverflowの:

>>> d1 = {'a': [1, 2, 3]} 
>>> d1['a'].append(4) 
>>> d1 
{'a': [1, 2, 3, 4]} 
+0

あなたはちょうど私に試してみるべきアイデアをくれました。 – Nick

関連する問題

 関連する問題