python3 字典

关于字典的有关操作,以及方法调用会在程序中以注释形式解释
#8.1 字典时python中唯一的映射类型,采用键值对(key-value)的形式存储数据。
#python对key进行哈希函数运算,根据计算结果决定value的存储地址,字典时无需存储的,key
#必须是可哈希的。可哈希表示key必须是不可变类型的,如:数字,字符串,元组
#字典时除列表以外python中最灵活的内置数据结构类型,列表是有序的对象结合,字典时无序的对象的集合。
#区别在于:字典当中的元素是通过键来存取的,而列表是通过便宜存取的

#8.2创建字典:
dict0 = {}          #创建空字典
dict3 = dict()      #创建空字典
dict1 = {'name':"alex", 'age':36, 'sex':'male'}                 #通过键值对直接构造字典
dict2 = dict((('name','alex'), ('age',15), ('sex', 'male')))    #通过键值对和dict()构造函数构造字典

names = tuple(['a', 'b', 'c', 'd'])
ages = [10, 15, 18, 0]
dict4 = {name : age for name, age in zip(names, ages)}          #通过迭代器生成字典

dict6 = {}
for name, age in zip(names, ages):                              #生成字典,使用setdefault()函数向字典中添加新的item
        dict6.setdefault(name, age)

print(type(dict6))
print(dict6)
#增
dict5 = {}
dict5['name'] = 'alex'
dict5['age']  = 18
print(dict5)

a = dict5.setdefault('name')         #获取指定key的value,如果key不错在,则创建并且返回值为None
b = dict5.setdefault('age')
print(a, b)
print(dict5)

#查
dict1 = {'name':"alex", 'age':36, 'sex':'male'}
print(dict1.items())                #输出字典中的键值对
print(dict1.keys())                 #输出字典中的关键字 类型是<class 'dict_keys'>
print(type(dict1.values()))         #输出字典中的值 类型是<class 'dict_values'>

print(dict1['name'])                #按关键字输出字典中的value 如果关键不在字典中则会报关键字错误
print('name' in dict1)              #判断某个关键字是否在字典中
print(dict1.get('names'))           #get函数返回字典中关键字所对应的值,如果键不在字典中返回None

dict7 = {}
dict7.update(dict1)
print(dict7)

#改
print('-------------------------')
print(dict1)
dict1['name'] = "jquery"
print(dict1)

#删
#dict1.clear()
#print(dict1)                        #清空字典

del dict1['name']
print(dict1)
item = dict1.popitem()
print(item)
print(dict1)
print(dict1.pop('age'))
print(dict1)
del dict1                              #删除字典,在内存中将字典所占用的内存析构


#其他操作涉及到的方法
dict8 = dict.fromkeys(['host1', 'host2', 'host3', 'host4'], 'Mac')  #返回一个新字典,并将每个关键字的值设为默认的value
print(dict8)

dict8['host1'] = 'xiaomi'
print(dict8)

dict9 = dict.fromkeys(['host1', 'host2', 'host3', 'host4'], ['xiaomi', 'mac', 'apple'])
print(dict9)
dict9['host2'][0] = 'huawei'
print(dict9)

#字典嵌套
cla = {
    '本校':{
        '一年级':5,
        '二年级':10,
        '三年级':10,
        '四年级':10     
    },
    '外校':{
        '一年级':50,
        '二年级':100,
        '三年级':100,
        '四年级':100 
    }
}
print(cla)
print('===========================')
#字典排序
dict10 = {'z':5, 'c':8, 'b':6, 'n':56}
print(sorted(dict10))                   #返回一个有序的包含字典所有key的列表

dict11 = {'name':"alex", 'age':36, 'sex':'male'}

#字典的遍历
for i in dict11:                        #i将会得到字典的关键字
    print(i, dict11[i])

for item in dict11.items():
    print(item)

for key, value in dict11.items():
    print(key, value)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值