python - python:根据另一个dict值从dict中删除值
问题描述
我有两个列表字典,x
和y
. dict 是具有x
索引值列表的从属 dict,0,1 ..
而y
dict 是主 dict,我需要从(x
dict`中的那个)中删除值:
例如:
x = {
'11': {
0: [{'chan_id': '859',
'brod_id': '596'}],
1: [{'brod_id': '434',
'restaurant_id': '343'},
{'chan_id': '545',
'brod_id': '57'}]
}
}
y = {"11":
[{"brod_id": "169", "chan_id": "209"},
{'chan_id': '859', 'brod_id': '596'},
{'chan_id': '545', 'brod_id': '57'}],
"22":
[{"brod_id": "232", "chan_id": "454"},
{'chan_id': '343', 'brod_id': '55'}]
}
期望的结果:
filtered_data(x,y,0) # removing only the `0` indices values of `x` dict from `y` dict
print(y)
y = {"11":
[{"brod_id": "169", "chan_id": "209"},
{'chan_id': '545', 'brod_id': '57'}],
"22":
[{"brod_id": "232", "chan_id": "454"},
{'chan_id': '343', 'brod_id': '55'}]
}
我试过了:
def filtered_data(x,y, val):
for key,val in x.items():
for k,v in val.items():
for i,elem in enumerate(v):
print(i)
print(elem) # match the values and delete from y?
filtered_data(x,y,0)
解决方案
继续初始版本
def filtered_data(x,y, value):
for key,d in x.items():
for i,elem in enumerate(y[key]):
print(i)
print(elem)
print (d) # match the values and delete from y?
if elem in d[value]:
del y[key][i]
推荐阅读
- swagger - 使用 allOf 和其他属性进行 Swagger 数据验证
- bash - 如果前一行下面的行等于第一列的特定值,则打印两行
- java - 如何限制 RestController 方法对特定客户端的访问
- apache-spark - 使用 Scala 将列分配给 Spark Dataframe 中的另一列
- kotlin - 如何使用 Kotlin 进行特定排序?
- android - Google Place api 密钥不适用于 Android 应用程序
- python - 如何将 TextInput 传输到 pandas 数据并将其写入 Excel 工作表?基维
- python - PyQt5:一次更改多个对象的布局
- python - 如何处理 DELETE 语句删除任何行的失败?
- php - 如何使用php或sql对已经存储在sql列中的字符串句子中的数字求和