0

キーがタプルで、値が int の辞書がある場合、つまりx = {('G', 'N', 'L', 'C'): 4}、キーの最初の要素が値と等しいことを Python に伝えるにはどうすればよい'G' = 4でしょうか。これを行う方法はありますか?

4

1 に答える 1

2

新しい を形成したいようですdict

In [40]: x = {('G', 'N', 'L', 'C'): 4}

In [41]: y = {key[0]:val for key,val in x.iteritems()}

In [42]: y
Out[42]: {'G': 4}

これは、より少ない Python ベルとホイッスルを使用する別の方法です。最初に、辞書内の (キー、値) ペアをループできることに注意してください。

x = {('G', 'N', 'L', 'C'): 4}
for key in x:
    print(key)
    print(x[key])

収量

('G', 'N', 'L', 'C')
4

'G'したがって、次の4ように関連付ける新しい dict を定義できます。

x = {('G', 'N', 'L', 'C'): 4}
y = {}
for key in x:
    y[key[0]] = x[key]

print(y)    
# {'G': 4}

この式{key[0]:val for key,val in x.iteritems()}は、上記の for ループとまったく同じことを行います。これは辞書内包表記と呼ばれます (「辞書内包表記」については、ページを少し下に検索してください)。

式はiteritems メソッドも使用します。これは、キーだけではなく、ループを通過するたびにキーと値の両方を提供します。

于 2013-04-02T19:08:46.493 に答える