Python 如果我可以';你的字典里没有相似的名字吗?

Python 如果我可以';你的字典里没有相似的名字吗?,python,Python,我还没有太多的软件设计经验,所以我不确定程序员通常是如何解决这类问题的。我基本上是在创建一些值并将它们存储在dict中,但名称不是唯一的。我知道不可能在dicts中存储相同的密钥名,但软件工程师如何解决这个问题(我肯定我不是第一个遇到这个问题的人) 我认为一些代码会使它更容易理解(两个列表,一个是动物和水果,然后在这两个列表之间生成一个随机值。我试图找出如何存储这些数据,以便以后使用): 您可以看到最终结果是: elephant holds [2, 'pear'] pig holds [

我还没有太多的软件设计经验,所以我不确定程序员通常是如何解决这类问题的。我基本上是在创建一些值并将它们存储在dict中,但名称不是唯一的。我知道不可能在dicts中存储相同的密钥名,但软件工程师如何解决这个问题(我肯定我不是第一个遇到这个问题的人)

我认为一些代码会使它更容易理解(两个列表,一个是动物和水果,然后在这两个列表之间生成一个随机值。我试图找出如何存储这些数据,以便以后使用):

您可以看到最终结果是:

elephant  holds  [2, 'pear']
pig  holds  [3, 'pear']
dog  holds  [0, 'pear']
bear  holds  [4, 'pear']
cat  holds  [1, 'pear']
这是完全有意义的,因为它覆盖了以前的结果(在列表中包含apple而不是pear)。如果我想存储所有10个结果,而不仅仅是唯一的5个结果,我如何重新设计这个


提前感谢。

如果同一个名字意味着识别不同的东西,那么必须有其他方法来区分,比如说,3只不同的猪:用它作为你的钥匙。

如果同一个名字意味着识别不同的东西,那么必须有其他方法来区分,比如,3个不同的清管器:将其用作钥匙。

您可以使用组合钥匙。例如,您可以使用每个列表中元素的元组作为键,以便:

dict_of_lists_values[(list_a, list_b)] = lista.index(list_a) *  listb.index(list_b)
然后获得相同的输出:

for lists_data in dict_of_lists_values:
    print lists_data[0], ' holds ', dict_of_lists_values[lists_data], lists_data[1]

您可以使用组合键。例如,您可以使用每个列表中元素的元组作为键,以便:

dict_of_lists_values[(list_a, list_b)] = lista.index(list_a) *  listb.index(list_b)
然后获得相同的输出:

for lists_data in dict_of_lists_values:
    print lists_data[0], ' holds ', dict_of_lists_values[lists_data], lists_data[1]

看起来你正试图为每种动物建立一种库存模型,对吗?不要直接指定一对[计数,水果]作为值,而是使用空字典初始化每只动物,并将每只动物的库存存储在那里:

bigdict = { }  # was: dict_of_lists_values
for a in lista:
    bigdict[a] = { }

for a in lista:
    for b in listb:
        lista[a][b] = lista.index(a) *  listb.index(b) # or whatever

看起来你正试图为每种动物建立一种库存模型,对吗?不要直接指定一对[计数,水果]作为值,而是使用空字典初始化每只动物,并将每只动物的库存存储在那里:

bigdict = { }  # was: dict_of_lists_values
for a in lista:
    bigdict[a] = { }

for a in lista:
    for b in listb:
        lista[a][b] = lista.index(a) *  listb.index(b) # or whatever

太棒了。非常感谢,它在保持值的同时允许我使用唯一的键..没有想到使用元组作为名称。这太棒了。非常感谢,它在让我使用唯一键的同时维护了值。我并没有想到使用元组作为名称。+1。并没有想到将值本身作为键。这想法很酷。谢谢。+1..我并没有想到将值本身作为键。这想法很酷。非常感谢。