1

たとえば、辞書を使用して保存します。

a={"breakfast":"banana","lunch":"fish","dinner":"soup"}

すべてのKey-Valueセットと一緒にtime属性を追加する場合、どのようなアプローチになりますか。もちろん違います:

a={"8AM":"breakfast":"banana","2PM":"lunch":"fish","8PM":"dinner":"soup"}

次に、1つ以上のキーを使用して値にアクセスしたいと思います。

たぶんリストでトリックをすることによって?

4

4 に答える 4

5

タプルを辞書キーとして使用できます。

a = {("8AM", "breakfast"): "banana",
     ("2PM", "lunch"): "fish",
     ("8PM", "dinner"): "soup",
    }
于 2013-03-22T23:42:19.923 に答える
5

キーとしてタプルを使用する辞書を使用します。

>>> a={("8AM","breakfast"):"banana",("2PM","lunch"):"fish",("8PM","dinner"):"soup"}
>>> a["8AM","breakfast"]
'banana'

または、食事の名前だけを使用して時間と食べ物を調べたい場合:

>>> a={"breakfast":("8AM","banana"),"lunch":("2PM","fish"),"dinner":("8PM","soup")}
>>> a["breakfast"]
('8AM', 'banana')
于 2013-03-22T23:42:32.400 に答える
2

辞書と場合によってはリストを使用したいので、「主キー」が何であるかを判別し、次のようなネストされた構造を作成することをお勧めします。

a = {
    'breakfast': {
        'time': "8AM",
        'items': ['banana', 'yogurt']
    },
    'lunch': {
        'time': '2PM',
        'items': ['fish', 'tartar sauce']
    },
    'dinner': {
        'time': '8PM',
        'items': ['soup', 'salad']
    }
}

各食事の時間はさまざまですが、朝食、昼食、夕食を食べることは誰もが知っています(または少なくともそうすべきです)。これを行うと、消費された時間とアイテムを特定できます。

a['breakfast']['time']
'8AM'

a['breakfast']['items']
['banana', 'yogurt']
于 2013-03-22T23:47:51.227 に答える
1
a = {"8AM":{"breakfast":"banana"},"2PM":{"lunch":"fish"},"8PM":{"dinner":"soup"}}

使用:

>>>a['8AM']['breakfast']
'banana'

他の:

def r(_d,_target):
    result = []
    for k, v in _d.items():
        if(k == _target):
            if type(v) == type({}):
                for x in v.keys():
                    result.append(v[x])
            else:
                result.append(v)
        if type(v) == type({}):
            r2 = r(v,_target)
            if len(r2) > 0:
                for l in r2:
                    result.append(l)
    return result

>>> r(a,"breakfast")
['banana']
>>> r(a,"8AM")
['banana']
>>> r(a,"dinner")
['soup']
于 2013-03-22T23:53:30.090 に答える