8 字典

# -*- coding: utf-8 -*-
__author__ = 'Bao'
d1={'广东':{'广州':{'天河':"IFC",
                '白云':'白云山',
                '越秀':'越王古墓'}},
    '海南':'三亚',
    '湖南':'长沙'}

print(d1)
print(d1['广东'])
# print(d1['广西'])  #如果不存在就会报错
d1['湖南']='衡阳' #存在主键时,修改值
d1['云南']='丽江' #不存在主键,则添加记录
print(d1)
del d1['海南'] #删除其中某元素
print(d1)
d1.clear() #清空字典
print(d1)
del d1 #删除字典

#copy() 浅复制
d2=d1.copy()
print(d2)

# radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
seq=('广东','海南', '湖南')
d3=dict.fromkeys(seq)
d4=dict.fromkeys(seq,'公园')
print(d3)
print(d4)

# radiansdict.get(key, default=None) 返回指定键的值,如果键不在字典中返回 default 设置的默认值
print(d4.get('广东'))
print(d4.get('四川')) #不存在,返回None

# radiansdict.keys() 返回一个迭代器,可以使用 list() 来转换为列表
l3=list(d3.keys())
print(l3)

# radiansdict.values() 返回一个迭代器,可以使用 list() 来转换为列表
l4=list(d4.values())
print(l4)

# radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里
d3.update(d4)
print(d3)
print(d4)

# pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
d4.pop('海南')
print(d4)

# popitem() 随机返回并删除字典中的最后一对键和值。
d4.popitem()
print(d4)

# radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
d4.setdefault('三亚','海上公园')
print(d4)

# key in dict 如果键在字典dict里返回true,否则返回false
if '海南' in d1:
    print('True')
else:
    print('False')
if '四川' in d1:
    print('True')
else:
    print('False')

# radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组
print(d1.items())

for i,j in d1.items():
    print(i,'\t',j)

按层级输出

# -*- coding: utf-8 -*-
__author__ = 'Bao'

d1={'广东':{'广州':
              {'天河':"IFC",
                '越秀':'越王古墓',
                '白云':'白云山'
            }},
    '海南':{'三亚':'亚龙湾',
             '海口':'海滨公园'},
    '湖南':'长沙'}
print(d1)

l1=list(d1.keys())
# print(l1)
for i in range(len(l1)):
    v1=d1.get(l1[i])
    if type(v1)== type(d1):
        print(l1[i])
        l2=list(v1.keys())
        for i1 in range(len(l2)):
            v2=v1.get(l2[i1])
            if type(v2)==type(d1):
                print('\t',l2[i1])
                l3=list(v2.keys())
                for i2 in range(len(l3)):
                    v3=v2.get(l3[i2])
                    if type(v3)==type(d1) :
                        print('\t'*2,l3[i2])
                    else:
                        print('\t'*2,l3[i2],v2.get(l3[i2]))
            else:
                print('\t',l2[i1],v1.get(l2[i1]))
    else:
        print(l1[i],d1.get(l1[i]))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值