1

インデックス番号を指定せずにリストに値を格納するにはどうすればよいですか?

例えば

outcomeHornFive=5

someList = []
someList.append(outComeHornFive)

これを行う代わりに、

someList[0] # to reference horn five outcome

どうすればこのようなことができますか? その理由は、リスト内で参照する必要がある項目がたくさんあり、どのインデックスが何なのかを追跡するのが本当に不便だと思うからです。

someList.hornFive
4

4 に答える 4

3

属性アクセスによって (または名前によって) ものを参照したい場合は、別のデータ構造を使用できます。

それらを に入れたりdict、クラスを作成したり、何か他のことをしたりできます。それは、そのオブジェクトとどのような相互作用をしたいかによって異なります。

(PS、配列ではなくリストと呼びます)。

于 2012-09-02T03:51:54.407 に答える
3

リストを使用する代わりに、辞書を使用できます。

Python ドキュメントのデータ型を参照してください。

辞書を使用すると、キーを使用して値を検索できます。

my_dict["HornFive"] = 20
于 2012-09-02T03:56:12.980 に答える
0

できませんし、すべきではありません。それができるとしたら、リスト自体をどのように参照しますか? また、リスト自体を参照する必要があります。

その理由は、リスト内で参照する必要がある多くの項目があり、どのインデックスが何であるかを追跡するのが本当に不便だと思うからです。

データをどのように整理するかに関係なく、とにかくそのようなことをする必要があります。個別の変数がある場合は、どの変数が何を格納しているかを知る必要があります。someListこれが気に入った場合でも、ベアは「ホーン 5」を指し、「ホーン 6」を指すのではないことを知っておく必要があります。リストと dict の利点の 1 つは、この知識を除外して一般的なコードを記述できることです。ディクショナリ、またはカスタム クラス (意味に異なる属性が有限数あり、それをコレクションとして使用する必要がない場合) は、数値インデックスの代わりに実際の名前を付けることで、読みやすさを向上させることができます。 .

于 2012-09-02T03:57:44.980 に答える
0

http://parand.com/say/index.php/2008/10/13/access-python-dictionary-keys-as-properties/から参照

辞書の構文ではなくドット表記を使用して辞書の値にアクセスしたいとします。つまり、次のものがあります。

d = {'name':'Joe', 'mood':'grumpy'}

そして、「名前」と「気分」を取得したい

d.name d.気分

いつもの代わりに

d['name']
d['mood']

なぜこれをしたいのですか?多分あなたはJavascript Wayが好きです。または、より審美的だと思います。私の場合、Django モデルのインスタンスまたは単純な辞書のいずれかである項目を同じコードで処理する必要があるため、属性を取得するための統一された方法を提供する必要があります。

それは非常に単純であることがわかりました:

class DictObj(object):
    def __init__(self, d):
        self.d = d

    def __getattr__(self, m):
        return self.d.get(m, None)

d = DictObj(d)
d.name
# prints Joe
d.mood
# prints grumpy
于 2012-09-02T04:36:31.087 に答える