2017-07-03 2 views
1

私はこれが "シンプル"であることを知っていますが、これを理解することができず、これについて助けを見つけることもできません。私は、例えば各行に3つの値のような複数の値を持つ多次元リストを作成したいと思います。そして、与えられた値に基づいて行の情報を見つけることができます。例えばPythonの多次元リストで項目を検索する最善の方法

、私は次のようなデータがある場合:

名:犬、カラー:ブラウン、行動:ハッピー 名前:猫、カラー:ブラック、行動:悲しい 名前:鳥、カラー:グリーン、行動:エネルギッシュ

だから私はこのようなリストを作る:

theList = [] 

theList = [{"dog","brown","happy" }, {"cat","black", "sad"}, {"bird","green", "energetic"} ] 

どのようにして値をもとに、何かのための情報を見つけることができますか?たとえば、私は犬の色を知りたいですか? 「犬」のリストを検索し、2番目の値(「犬」を含むリストセクション内の値[1])の値を調べるにはどうすればよいでしょうか?

多次元このため、辞書

+0

辞書は、このユースケースのための教科書ソリューションです。 –

+0

よろしくお願いします。私は辞書で知っている、通常、それは "キー"と "値"を持っているので、2次元の配列のように感じる – king

答えて

4

これは本当にあなたの意図にかかっています。 @ViníciusAguiarによって指摘されているように、動物を辞書のキーとして使用できますが、これはnameが主な参照で、異なる色と動作の複数のdogがない場合にのみ意味があります。

また、これは本当にあなたが多分dictsの、リストの適切な構造の複数の質問をするテーブル、例えばある場合:

In []: 
result = [] 
for d in data: 
    if d['name'] == 'dog': 
     result.append(d['colour']) 
result 

Out[]: 
['brown'] 
:ここ

In []: 
data = [{"name":"dog", "colour":"brown", "behaviour":"happy"}, 
     {"name":"cat", "colour":"black", "behaviour":"sad"}, 
     {"name":"bird", "colour":"green", "behaviour":"energetic"} ] 

[d['colour'] for d in data if d['name'] == 'dog'] 

Out[]: 
['brown'] 

が同等forループでは、

しかし、あなたはまた、動物が​​であるように、他の質問をすることができます。

In []: 
[d['name'] for d in data if d['colour'] == 'green'] 

Out[]: 
['bird'] 

あなたも例えば、テーブルのデータを扱うのが得意である、そしてpandasがあるサードパーティのライブラリを使用することができた場合:

In []: 
import pandas as pd 
df = pd.DataFrame(data) 
df 

Out[]: 
    name colour behaviour 
0 dog brown  happy 
1 cat black  sad 
2 bird green energetic 

In []: 
df[df['name']=='dog']['colour'] 

Out[]: 
0 brown 
+0

このステートメントのため:[d ['color'] '] ==' dog ']、あなたはそれを書くために "長い"方法を書くことができますか?あなたがそれを書いているオリジナルの方法と同じように、あなたがPythonコードのために利用しているショートカットでちょっと混乱しています。それが意味をなさないならば、これはうまくいくでしょう。私は変数に混乱しています。ちょうどループを書いたのは – king

+1

です。[* list comprehension *](https://en.wikipedia.org/wiki/List_comprehension)と呼ばれています。たくさんの言語。説明のために、私は上記のforループを追加しました。 – AChampion

1

だけで辞書にkeyとしてペットの名前を使用します。??

myDict = { "dog": {"Color":"brown","Behaviour":"happy"}, 
      "cat": {"Color":"black","Behaviour":"sad"}, 
      "bird": {"Color":"green","Behaviour":"energetic"}} 

例えば、私は犬の色を知りたい

>>> myDict["dog"]["Color"] 
'brown' 
関連する問題