我知道我的问题可以通过简单的迭代来解决,但我是python的新手,并想知道是否有一个惯用的'或标准语言构建解决方案。
所以问题是我有这样的字典:
mydict = {
(1,2) : 111,
(2,3) : 222,
(xxx, yyy) : zzz,
(xxx, qqq) : www,
....
这是一个由指向值的键元组成的字典
如果我只需要(xxx, *)
和(xxx, yyy)
对,我如何搜索(xxx, qqq)
这样的元组?
mydict[(xxx, *)]
或类似的东西是否有任何构造?
感谢您的帮助!
答案 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
的值数组。