python dict嵌套list_字典(dict),字典的嵌套,集合(set)

1.字典

1.1 字典是python中唯一的一个具有映射的类型.

dict = {"键":'值'}      键(key)是必须是不可变的(可哈希的).

值(value)没有要求.

1.2 不可变的数据类型:int,str,tuble,bool

不可哈希(可变)的数据类型: list, dict, set(集合).

1.3 字典的增删改查

1.3.1 増:

1) dic["键"] = "值"

2) dic.setdefault("键","值")  # 1.先去字典中通过'键'查看是否有值.

2.如果有值,就不进行添加.

3.如果没有就进行添加 返回的就是添加的值.

1.3.2 删

1) del dic    #删除整个字典.

del dic['键']    #通过指定键删除.2) dic.pop('键') #通过指定键删除,pop具有返回值,返回的是被删除的东西.3) dic.clear()   #清空4) dic.popitem() #随机删除 python3.6中删除最后一个,python3.5随机删除.

1.3.3 改

1) dic.update(dic1)  #update 更新 dic中与dic1相同的键的值,会被替换掉.2) dic["键"] = "值" #字典中没有相同键时是添加,有相同键位时是更换.

1.3.4 查

1)print(dic["键"]) #通过键位查找 如果键不存在就报错2)print(dic.get("键")) #通过键位查找 如果键不存在不报错,返回None3)print(dic.setdefault("键")) #不存在就返回None

1.3.5 其他操作

###循环打印dic中的键

for i indic:

print(i)

for i indic.keys():

print(i)

###循环打印dic中的值

for i indic:

print(dic.get(i))

for i indic.values():

print(i)

###循环打印键值

for i indic.items():

print(i)

for i indic:

print(i,dic[i])

keys() # 获取所有的键 高仿列表

values() # 获取所有的值 高仿列表

item() # 获取键值 以元祖的形式显示

dic3 = dict.fromkeys([1,2,3,4,5,6,7,8,9,0],[1,2,3])

第一个参数是键 要是可迭代的对象

第二个参数是值, 值是无所谓 是因为创建的新字典的值用的都是一个 值是一个可变数据类型

2. 字典的嵌套

dic = {'汪峰':{'光头强':'电锯','葛慧倩':'熊大','国际章':'熊二'},'陈冠希':{'张柏芝':'喜剧之王','阿娇':'千机变'},'韦小宝':{'建宁':'公主','龙儿':'教主夫人','双儿':{'大双':'榴莲','小双':'椰子'},'阿珂':'刺客'}}

dic1= dic['陈冠希']['阿娇']

print(dic1)

print(dic['韦小宝']['双儿'])

print(dic['韦小宝']['双儿']['小双'])

3.集合(set)

集合   存储数据    天然去重  无序 不能是用下标

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引[1]:I'm searching an elegant way to get data using attribute on a dict with some dicts and lists (i.e javascript-style object syntax)。 引用[2]:I, this is not possible recursion, but what would be nice way to get an style for dicts?。 用[3]:print(set(a)) Traceback ( recent call last): File “”, line 1, in TypeError: unhashable type: ‘dictset(a) Traceback (most recent call last): File “”, line 1, in TypeError: unhashable type: ‘dict’ a[1] {‘match’: {‘recirc_id’: ‘1’, ‘in_port’: ‘dpdk1’}, ‘action’: {‘type’: ‘dpdk0’}} a[2] Traceback (most recent call last): File “”, line 1, in IndexError: list index out of range a[0] {‘match’: {‘recirc_id’: ‘0’, ‘in_port’: ‘dpdk1’}, ‘action’: {‘type’: ‘dpdk0’}} set(a[0]) {‘action’, ‘match’} set(a[1]) {‘action’, ‘match’} dict(a[0]) {‘match’: {‘recirc_id’: ‘0’, ‘in_port’: ‘dpdk1’}, ‘action’: {‘type’: ‘dpdk0’}} dict(a[1]) {‘match’: {‘recirc_id’: ‘1’, ‘in_port’: ‘dpdk1’}, ‘action’: {‘type’: ‘dpdk0’}}。 问题:python dict 包含之前提到的嵌套字典和列表,有没有一种优雅的方法可以使用属性访问来获取数据,类似于JavaScript中的对象语法? 回答: 在Python中,可以使用`collections.namedtuple`或者自定义类来实现类似JavaScript对象语法的属性访问。这样可以通过点号操作符来访问字典中的值。另外,还可以使用`json`模块将字典转换为JSON字符串,然后使用`json.loads`将其转换回字典,这样也可以实现类似的效果。然而,对于嵌套字典和列表,如果要实现属性访问,可能需要使用递归的方式来处理。[2]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值