2024-04-26 15:06:49 发布
网友
我有一本这样的字典
my_d = {"a": [1, 2, 2, 5, 2],"b": [2, 1, 2, 4, 5],"c": [7, 2, 2, 6, 2],"d": [7, 2, 2, 2, 1]}
我正在寻找字典值包含“2和小于2”超过两次的键。在本例中,这将是“a”、“b”、“c”、“d”。以下代码仅查找字典值包含2的次数超过两次的代码:
for key, item in my_d.items(): if item.count(2) > 2: print key,
您可以对项目进行排序,并检查前两个元素是否≤2:
>>> for key, item in my_d.items(): ... i=sorted(item) ... if all(map(lambda x:x<=2,i[:2])): ... print key, ... a c b d
或者,因为只有2个元素需要检查:
>>> for key, item in my_d.items(): ... i=sorted(item) ... if i[0]<=i[1]<=2: ... print key, ... a c b d
[key for key, item in my_d.items() if len([i for i in item if i<3]) > 2]
下面应该可以,这是一个简单的generator expression
for key, item in my_d.items(): if len ([x for x in item if x <= 2]) > 2: print key
它所做的是构建item中小于或等于2的所有元素的列表,并检查生成的列表的长度。你知道吗
item
您可以对项目进行排序,并检查前两个元素是否≤2:
或者,因为只有2个元素需要检查:
下面应该可以,这是一个简单的generator expression
它所做的是构建
item
中小于或等于2的所有元素的列表,并检查生成的列表的长度。你知道吗相关问题 更多 >
编程相关推荐