我有一个字典,其中为每个值分配了 3 个键:dictTest[c,pH,T] = value
。我想检索与给定的单个键对应的所有值:dictTest[c,*,*] = value(s)
我上网查了一下,没有找到Python的解决方案,只有C#。我尝试使用 dictTest[c,*,*]
但出现语法错误。我可以看到的另一个选项是使用多级键,即第一级为 c
,第二级为 pH
等等,即 dictTest[c][ pH][T] = 值
(来自 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。
谢谢, 穆斯塔法。
最佳答案
dictTest={}
dictTest[1,100,10]=10
dictTest[1,101,11]=11
dictTest[2,102,11]=12
print([dictTest[i] for i in dictTest.keys() if i[0]==1])
print([dictTest[i] for i in dictTest if i[0]==1]) #more pythonic way
#creating a function instead of printing directly
def get_first(my_dict,val):
return [my_dict[i] for i in my_dict if i[0]==val]
print(get_first(dictTest,1))
关于python - 根据一个键查找多键字典的所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58485902/