python – 列出dict中tuple键的所有值
发布时间:2020-12-20 12:38:24 所属栏目:Python 来源:网络整理
导读:假设我有一个以元组为键的字典,如下所示: 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" 如何在元组键的第一个元素中获取给定数字的
假设我有一个以元组为键的字典,如下所示:
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] 如果k [0] == 111则表示仅返回其键的第一个元素为111的d1的值 您还尝试使用print(d1 [(111,i)],如果您可以控制键元组的第二个元素的范围和类型,那么它将起作用,即: >>> [d1[(111,i)] for i in range(1,4)] ['value1111','value1112','value1113'] 在你的例子中,我们知道i只能从1到3,因此范围(1,4),但如果你不知道i的范围是什么,甚至我的类型是什么,那么列表理解是你最好的朋友. 当然,通过这样做,可以得到第一个元素为111的键元组的第二个元素列表: >>>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'] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |