Python-之基础篇5

字典

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算机的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型   如:数字、字符串、元组。

字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

 

#创建字典
dict1 = {'name':'刘','age':'19','sex':'男'}
dict2 = dict((('name','alex'),))
print(dict1)
print(dict2)
#对应的操作
# 1、增
dict3 = {}
dict3 = {'name':'alex'}
dict3['age'] = 18
print(dict3)    #{'name': 'alex', 'age': 18}

a = dict3.setdefault('name','yuan')  #setdefault 如果字典里有这个键,不做任何改变,没有就加进去,并且返回键对应的值
print(dict3)
b = dict3.setdefault('hobby','gril')
print(a,b)
print(dict3)


#2、查
dict4 = {'name':'alex','age':'18'}
print(dict4['name'])
# print(dict4['names'])     #字典里没有的键运行会报错

print(dict4.get('age',False))   # get没有的键返回括号里所附加的布尔值
print(dict4.get('ages',False))

print(dict4.items())        # 取出字典里所有的键值对
print(dict4.keys())         # 取出字典里所有的键
print(dict4.values())       # 取出字典里所有的值

print('name' in dict4)     # 判断键名在不在字典里  py2:dict4.has_key('name')
print(list(dict4.values()))  # 将字典里的值取出并创建成列表


#3、改
dict5 = {"name":'alex','age':18}

dict5['name'] = 'alvin'
dict6 = {'sex':'male','hobby':'girl','age':36}
dict5.update(dict6)     # update 将字典6添加到字典5中,键名相同的以括号中字典的键所对应的值为主
print(dict5)


#4、删
dict7 = {'name':'alex','age':18,'class':1}

dict7.clear()    # 不删除,只是清空字典
print(dict7)

del dict7['name']   #  通过键名删除
print(dict7)

a = dict7.popitem()    # 随机删除一个键值对
print(a,dict7)

print(dict7.pop('age'))    # 通过键名删除并返回该键值对的值
print(dict7)

del dict7         # 在内存中删除字典
print(dict7)


# 5、其他操作以及涉及到的方法
# 5.1 dict.fromkeys(X,Y)   将Y整体逐个赋给X,Y不可拆分,X必须拆分
d1 = dict.fromkeys(['host1','host2','host3'],'Mac')
print(d1)
d2 = dict.fromkeys(['host1','host2','host3'],['Mac','huawei'])
print(d2)

d1['host1'] = 'xiaoming'
print(d1)
# d2['host1'][0] = 'xiaomi'    # 浅拷贝
print(d2)


# 5.2 sorted(dict):返回一个有序的包含字典所有的key的列表
dic = {5:'555',6:'666',1:'111'}
print(sorted(dic))


# 5.3字典的遍历
dic1 = {'name':'alex','age':18}
for i in dic1:
    print(i,dic1[i])
for items in dic1.items():
    print(items)
for keys,values in dic1.items():
    print(keys,values)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值