我有一个字典,每个值有3个键:dictTest[c,pH,T] = value
。我想检索与给定的单个键对应的所有值:dictTest[c,*,*] = value(s)
我在网上查了一下,但找不到Python的任何解决方案,只有C#。我试过使用dictTest[c,*,*]
,但出现语法错误。我看到的另一个选项是使用多级键,即第一级为c
,第二级为pH
,依此类推,即dictTest[c][pH][T] = value
(从http://python.omics.wiki/data-structures/dictionary/multiple-keys)
下面是一些测试代码:
dictTest={}
dictTest[1,100,10]=10
dictTest[1,101,11]=11
下面给出了一个语法错误:
print(dictTest[1,*,*])
尝试只指定一个键时,会出现键错误:
print(dictTest[1])
我也尝试过上面提到的多级键,但在尝试定义字典时会出现语法错误:
dictTest[1][100][10]=10
在上面的示例中,我只想指定第一个键(即key1=1
),并返回字典的两个值,因为这两个值的第一个键值都是1。你知道吗
谢谢你, 穆斯塔法。你知道吗
要创建多级嵌套字典,可以使用递归创建的defaultdicts:
输出:
字典的键是3个值的
tuple
。它不是一个“多键”dict,您可以根据元组的某个元素高效地搜索它。你知道吗可以基于第一个键执行线性搜索,也可以仅使用第一个键创建另一个字典,如果重复访问,效率会更高。你知道吗
因为键重复,所以需要一个列表作为值。例如,让值是一个元组,包含键的其余部分和当前值。像这样:
现在
newdict[1]
是[((101, 11), 11), ((100, 10), 10)]
(与此键匹配的所有值的列表,添加了-原始键的其余部分,这样就不会丢失数据)以及整个格言:
相关问题 更多 >
编程相关推荐