5

私がdictを持っているとしましょう。内部のキー/値がわかりません。for ループを実行せずにこのキーと値を取得するにはどうすればよいですか (dict には項目が 1 つしかありません)。

その場合、なぜ私が辞書を使用しているのか疑問に思われるかもしれません。API 全体に辞書があり、ユーザーが失われることは望ましくありません。一貫性の問題です。そうでなければ、リストとインデックスを使用していたでしょう。

4

4 に答える 4

12

ジョブに適切なデータ型を使用してください。目標は、どこでも同じデータ型を使用することではなく、実行可能なコードを作成することです。

ディクショナリに 1 つのキーと 1 つの値しか含まれていない場合インデックスを作成して次のいずれかを取得できます。

key = list(d)[0]
value = list(d.values())[0]

または両方を取得するには:

key, value = list(d.items())[0]

listPython 3 では.keys()、 、.values()および.items()はリストではなく dict ビューを返すため、呼び出しが必要です。

もう 1 つのオプションは、シーケンス アンパックを使用することです。

key, = d
value, = d.values()

または両方同時に:

(key, value), = d.items()
于 2013-03-12T16:19:15.893 に答える
7

イテレータを使用して辞書の最初の項目を取得するだけです

>>> d = {"foo":"bar"}
>>> k, v = next(iter(d.items()))
>>> k
'foo'
>>> v
'bar'
于 2013-03-12T16:20:27.470 に答える
1

あなたはこれを行うことができます:

>>> d={1:'one'}
>>> k=list(d)[0]
>>> v=d[k]

Python 2 または 3 で動作

于 2013-03-12T16:25:56.967 に答える
0

d.popitem()キー、値のタプルを提供します。

于 2013-03-12T16:18:40.480 に答える