Python 3.x 如何根据条件从字典提取到另一个字典?
需要将其Python 3.x 如何根据条件从字典提取到另一个字典?,python-3.x,dictionary,Python 3.x,Dictionary,需要将其值不等于200的提取到另一个字典。 我可以做到这一点,如下所示 Input : t1_dict = {"k1":{"api1":200,"api2":500,"api3":200},"k2":{"api1":500,"api2":200,"api3":500}} Output: t2_dict = {'k2': {'api'1:
值不等于200的提取到另一个字典。
我可以做到这一点,如下所示
Input :
t1_dict = {"k1":{"api1":200,"api2":500,"api3":200},"k2":{"api1":500,"api2":200,"api3":500}}
Output:
t2_dict = {'k2': {'api'1: 500,'api3':500}, 'k1': {'api2': 500}}
可以用更好的方式吗?有哪一种班轮或其他最佳解决方案?任何优化?备选方案一衬板(设置后):
这里找到的顶级解决方案是这个想法的根源,我只是将它嵌套在另一个循环中:
希望这有帮助 我不知道是谁和为什么否决了这个问题。有没有更好、更有效的方法?我对你的问题投了反对票,因为它没有显示出任何研究成果。这个问题被问了好几次(dict of dicts dictionary comphrension filter…)。您可以删除或改进您的问题以恢复您的声誉。@cronoik:谢谢。这正是我需要的。不知道多层次字典的字典一行。
t2_dict = {}
for k1,v1 in api_status.items():
t2_dict[k1] = {}
for k2, v2 in v1.items():
if v2 != 200:
t2_dict[k1][k2] = v2
#Value to exclude
Value=200
t1_dict={"k1":{"api1":200,"api2":500,"api3":200},"k2":{"api1":500,"api2":200,"api3":500}}
t2_dict = {j:{k:v for k,v in t1_dict[j].items() if v != Value} for j in t1_dict}
print(t2_dict)