2011-07-05 7 views
8

Pythonを使用しているときに、dictがリストの値を持つことは可能でしょうか?例えばPython - 辞書の値がリストであることはできますか?

、次のようになり、辞書(KeyName3の値を参照してください):

{ 
keyName1 : value1, 
keyName2: value2, 
keyName3: {val1, val2, val3} 
} 

私はすでに、しかし、単一の値は、(当然)リストとして返され、私は「defaultdict」を使用することができます知っています。

私が尋ねる理由は、発信者が単一のキー値を項目として(dictキー値のように)リストではなく(リストをpop[0]と指定しなくても)retieすることができるようにするためです。 - ただし、複数の値をリストとして取得することもできます。

もしそうでなければ、いかなる奨励も歓迎されます。

誰かが助けてくれれば、それは素晴らしいことです。事前に

おかげで、

ポール

*しかし私はまた、Pythonの3.0+と前方互換性がなければならないスクリプトを書くのPython 2.6を使用しています。

+0

詳細については、http://docs.python.org/tutorial/datastructures.html#dictionariesを参照してください。パイソン初心者の場合はチュートリアルをお勧めします。 –

+2

このような簡単なことをテストするには、 Pythonのインタラクティブモード。許可されているものとそうでないものを試してみることができます。 – tkerwin

+0

@Paul Kernaghan:あなたが試したとき、あなたは何を観察しましたか? –

答えて

24

はい。 dictの値は、あらゆる種類のPythonオブジェクトになります。キーは任意のハッシュ可能オブジェクト(リストを許可しませんが、タプルを許可します)でもかまいません。

あなたがリストを作成する[]、ない{}を使用する必要があります。

{ keyName1 : value1, keyName2: value2, keyName3: [val1, val2, val3] } 
+0

Doh!それは完璧に働いています。あなたの助けに感謝し、大変感謝します。 –

+0

リストがタプルではなくリストを使用できるのは、リストが変更可能であるためです。したがって、その "値"に基づく計算はすべて冪等ではありません(コンピューティングセンス)。 – Marcin

+0

@geoffspear、Coolですが、keyname3とlist value 2で値を取得する方法は? – Eswemenasja

5

はい、それは可能です:

d = {} 
d["list key"] = [1,2,3] 
print d 

は出力:

{'list key': [1, 2, 3]} 
0

それは間違いなく持つことができますリストと任意のオブジェクトを値として持つが、辞書はキーとしてリストを持つことができないそのリストは変更可能なデータ構造であり、キーは変更可能ではないため、それらを使用するものは他にはありません。

関連する問題