python 如何对嵌套字典里的数据进行添加和删除?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 如何对嵌套字典里的数据进行添加和删除?相关的知识,希望对你有一定的参考价值。

删除一个值,只要指定对应键就可以:dict.pop(types)
如果types键的值还是一个字典,即1:1:'a',2:'b',3:'c',2:4:'d',5:'e',6:'f'
那么删除2中的4:‘d’,怎么操作?
要修改2中的5:'e'为5:'w',怎么实现啊,求助。。

>>> data = 1: 1:'a',2:'b',3:'c', 2: 4:'d',5:'e',6:'f'
>>> data
1: 1: 'a', 2: 'b', 3: 'c', 2: 4: 'd', 5: 'e', 6: 'f'
>>> del data[2][4]
>>> data
1: 1: 'a', 2: 'b', 3: 'c', 2: 5: 'e', 6: 'f'
>>>
>>> data[2][5] = 'w'
>>> data
1: 1: 'a', 2: 'b', 3: 'c', 2: 5: 'w', 6: 'f'
>>>

追问

请问在.py文件中创建一个三层嵌套的字典,能不能用类似创建三维数组的方法呢?

追答

从某个方面讲是的,但又不一样。
一般概念上的几维数组在特定维度上的长度是定长的,通过位置坐标访问。
而字典的是以任意唯一值为访问凭据的。

参考技术A

那就嵌套操作呗

先取键2的值,是一个字典;再对该字典做pop操作。

a = 1:1:'a',2:'b',3:'c', 2:4:'d',5:'e',6:'f'
a[2].pop(4)
print a[2]
a[2][5] = 'W'
print a[2]

参考技术B 方法:
del dict2['name']#删除键为“name”的条目。
dict2.clear()#删除 dict2 中所有的条目
del dict2#删除整个 dict2 字典
dict2.pop('name')#删除并返回键为“name”的条目

在Python列表中对嵌套字典进行排序? [复制]

【中文标题】在Python列表中对嵌套字典进行排序? [复制]【英文标题】:Sort nested dictionary inside a list in Python? [duplicate] 【发布时间】:2018-10-20 08:42:15 【问题描述】:
[  "PricingOptions":  "Price": 51540.72, "Agents": [ 4056270 ]  ,  "PricingOptions":  "Price": 227243.14, "Agents": [ 4056270],  ]

如何按价格排序?

【问题讨论】:

【参考方案1】:
data = [  "PricingOptions":  "Price": 51540.72, "Agents": [ 4056270 ]  ,  "PricingOptions":  "Price": 227243.14, "Agents": [ 4056270],  ]
newlist = sorted(data, key=lambda k: k['PricingOptions']["Price"])
print(newlist)

输出:

['PricingOptions': 'Price': 51540.72, 'Agents': [4056270], 'PricingOptions': 'Price': 227243.14, 'Agents': [4056270]]

降序

newlist = sorted(data, key=lambda k: k['PricingOptions']["Price"], reverse=True)
print(newlist)
#['PricingOptions': 'Price': 227243.14, 'Agents': [4056270], 'PricingOptions': 'Price': 51540.72, 'Agents': [4056270]]

【讨论】:

我的列表格式不一样,部分PricingOptions有多个[Price, Agent]条目。因此,您提供的解决方案将显示此类情况的关键错误。例如,data = [ "PricingOptions": "Price": 51540.72, "Agents": [ 4056270 ] , "PricingOptions": ["Price": 227243.14, "Agents": [ 4056270], [ “价格”:454545 “代理商”:[4056454]]【参考方案2】:

您可以通过应用lambda 表达式来使用sorted 方法。

sort_list = sorted(data, key=lambda elem: elem['PricingOptions']["Price"])

输出

['PricingOptions': 'Price': 51540.72, 'Agents': [4056270], 'PricingOptions': 'Price': 227243.14, 'Agents': [4056270]]

如果你想sort 列表降序,你只需将True 分配给reverse 属性。

【讨论】:

以上是关于python 如何对嵌套字典里的数据进行添加和删除?的主要内容,如果未能解决你的问题,请参考以下文章

字典嵌套和增删改查询

如何一次对字典或列表中的所有嵌套字典和列表进行排序?

如何按值和键的多个条件对嵌套字典进行排序?

在Python列表中对嵌套字典进行排序? [复制]

python列表里的字典元素合并去重

Python字典键值对的添加和遍历