在dict中搜索元组作为未知部分的键

时间:2017-09-27 17:48:56

标签: python dictionary search tuples

我知道我的问题可以通过简单的迭代来解决,但我是python的新手,并想知道是否有一个惯用的'或标准语言构建解决方案。

所以问题是我有这样的字典:

mydict = {
(1,2) : 111,
(2,3) : 222,
(xxx, yyy) : zzz,
(xxx, qqq) : www,
....

这是一个由指向值的键元组成的字典 如果我只需要(xxx, *)(xxx, yyy)对,我如何搜索(xxx, qqq)这样的元组? mydict[(xxx, *)]或类似的东西是否有任何构造?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

没有直接的语言构造。您必须使用列表推导选择键(或值),其中2元组(x, y)的第一个元素是x

lst = [v for (k1, _), v in mydict.items() if k1 == x]

答案 1 :(得分:0)

你可以通过进一步分解并将所有xxx分组来实现这一点,???在字典中的同一级别,而不是键的元组方法。

mydict = {
1: {2 : 111},
2: {3 : 222},
xxx { yyy : zzz,
      qqq : www},
....

这种方式可以让你到达你想去的地方mydict[xxx] = { yyy : zzz, qqq : www},你可以更进一步,mydict[xxx].values()来获得一个数组mydict[xxx].values = [zzz, www],键中包含xxx的值数组。