python - 列出字典中元组键的所有值

标签 python dictionary

假设我有一个以元组为键的字典,如下所示:

d1 = {}
d1[(111,1)] = "value1111"
d1[(111,2)] = "value1112"
d1[(111,3)] = "value1113"
d1[(112,1)] = "value1121"
d1[(112,2)] = "value1122"
d1[(112,3)] = "value1123"

如何在元组键的第一个元素中获取给定数字的所有值?也就是说,对于 111,我想获取以下内容:

value1111
value1112
value1113

我试过 print(d1[(111,i)]) 但它只返回一个值,有没有一种简单的方法可以做到这一点?

提前致谢。

最佳答案

以这种方式使用列表理解:

[v for k,v in d1.items() if k[0]==111]

条件 if k[0]==111 表示只返回 d1 的值,其键的第一个元素是 111

您还尝试使用 print(d1[(111,i)],如果您可以控制键的元组的第二个元素的范围和类型,那么它将起作用,即:

>>> [d1[(111,i)] for i in range(1,4)]
['value1111', 'value1112', 'value1113']

在您的示例中,我们知道 i 只能从 1 到 3,因此 range(1,4),但如果您不知道什么是i 的范围,甚至 i 的类型,那么列表理解就是你最好的 friend 。

当然,这样可以得到第一个元素为111的key元组的第二个元素的列表:

>>>my_filter = [k[1] for k in d1 if k[0]==111]
[2, 3, 1]
>>>my_list = [d1[(111,i) for i in my_filter]
['value1112', 'value1113', 'value1111']

关于python - 列出字典中元组键的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34530392/

相关文章:

image - React - map 中的动态图像

iphone - CGPDFDictionary引用一些有用的东西

java - 寻求用于套接字编程(Java 或 Python)的高级库

python - 如何使用 CSS 设置 CGI python 的样式?

Python zip 对两个 numpy 数组进行压缩

Python:如何从列表中删除价低于特定值的值

Swift - 空 NSMutableDictionary 或 NSDictionary?选修的

python - 如何获取整数列表,以函数 letter_grade 并打印 'The grade is A' 为例。

uitableview - 您可以不使用 cellForRowAtIndexPath 方法来填充 UITableView 吗?

c# - "unhandy"字典的JSON反序列化