我有一个形式的字典:{"level":[1,2,3],"conf":[-1,1,2],"text":["here","hel","llo"]}
我想过滤列表,以删除索引i
中的每一项,其中索引i
中的conf
不是
输出应如下所示:
{“level”:[2,3],“conf”:[1,2],文本:[“hel”,“llo”]}
因为conf
的第一个值不是
我试过这样的方法:
new_dict = {i: [a for a in j if a >= min_conf] for i, j in my_dict.items()}
但这只适用于一把钥匙。
回复:下面有很多好的解决方案。我只是在想另一个。
元组=[(1,-1,"here"),(2,1,"hel"),(3,"2","llo")]
filter(lambda项目:项目[1]
我用这个解决了它:
from typing import Dict, List, Any, Set
d = {"level":[1,2,3], "conf":[-1,1,2], "text":["-1","hel","llo"]}
filtered_indexes = set([i for i in range(len(d.get('conf', []))) if d.get('conf')[i] > 0])
def filter_dictionary(d: Dict[str, List[Any]], filtered_indexes: Set[int]) -> Dict[str, List[Any]]:
for key, list_values in d.items():
d[key] = [value for i, value in enumerate(list_values) if i in filtered_indexes]
return d
print(filter_dictionary(d, filtered_indexes))
输出:
{'level': [2, 3], 'conf': [1, 2], 'text': ['hel', 'llo']}
我将保留有效元素(大于0的元素)的索引:
kept_keys = [i for i in range(len(my_dict['conf'])) if my_dict['conf'][i] > 0]
然后,您可以过滤每个列表,检查列表中某个元素的索引是否包含在keep_keys
中:
{k: list(map(lambda x: x[1], filter(lambda x: x[0] in kept_keys, enumerate(my_dict[k])))) for k in my_dict}
输出:
{'level': [2, 3], 'conf': [1, 2], 'text': ['hel', 'llo']}
尝试:
from operator import itemgetter
def filter_dictionary(d):
conf = d['conf']
positive_indices = [i for i, item in enumerate(conf) if item > 0]
f = itemgetter(*positive_indices)
return {k: list(f(v)) for k, v in d.items()}
d = {"level": [1, 2, 3], "conf": [-1, 1, 2], "text": ["-1", "hel", "llo"]}
print(filter_dictionary(d))
输出:
{'level': [2, 3], 'conf': [1, 2], 'text': ['hel', 'llo']}
我试着先看看'conf'
的哪些索引是正的,然后用itemgetter
从字典中的值中选择这些索引。
本文向大家介绍Kotlin 筛选列表,包括了Kotlin 筛选列表的使用技巧和注意事项,需要的朋友参考一下 示例
列表筛选可以对地图中的数据按照事先设置好的列表模板进行查询。在第一次点击列表筛选时,会进入筛选定制页面,如下图: 点击确认后,开始进行筛选设置:点击新增按钮,可对某个字段添加筛选要求,添加后然后选择条件旁边加号按钮,以设置对某一列的具体筛选要求。 如上图的筛选条件为“名称包含迪亚”的售点,继续单击加号可以对名称列继续添加条件。如果需要对其他字段进行筛选,可以再次单击新增按钮增加条件,点击确定及保存
我需要过滤一个列表
所以我知道我可以过滤 JPA中具有findByProperty的特定属性 但是如果我有一组字符串,我如何过滤呢?我不能对一组字符串使用\u属性,因为字符串没有属性? 假设我有以下实体: 和另一个属性为字符串的类: 这是我的存储库:
我正在使用谷歌表单的过滤功能,但无法按我想要的方式使用,已经3天了。。。 基本上,我有第1页,有一列“电子邮件”和一列“潜在客户ID”。表2具有相同的“潜在客户ID”,但已过滤。含义,第1页,其“顺序为1,2,3,4,5…”。。。第二张不是,像是2,4,5,23,41。。。我想在表1中找到正确的电子邮件地址,该地址在两个表中具有相同的Lead ID。我使用了Filter函数,它工作得非常好,因为它
如何使用RxJava过滤项目列表? 我有以下代码,发出: 并且我想在之后应用筛选器。您可以在下一段代码中看到我的解决方案,但也许还有更好的方法?