dict

2017-10-25

字典的键
①是可哈希(不可变的数据类型:字符串,数字,元组(有待商榷),bool值)的
②唯一

dict1 = {'name':'sunv','age':18}
dict2 = {'name':'lixio','job':'666'}

增:

dict1['class']='four'   # 没有的则添加,有的是覆盖
dict1.setdefault('hobbie','haha')  # 如果hobbie存在,则dict1不变;若无则添加,
默认None,否则‘haha
dict1.update(dict2)   # 用dict2中的元素更新dict1,有:覆盖; 无:添加
print(dict1)    ### {'name': 'lixio', 'age': 18, 'job': '666'}
print(dict2)    ###{'name': 'lixio', 'job': '666'}
删:

print(dict1.pop('hhh','没有hhh'))     # 若没有'hhh',则返回 没有hhh,若不写(没有hhh)则报错!
dict1.popitem()   # 随机删除某个键值对
dict1.clear()    # 清空
del dict1['name']  # 删 name 这个键值对
改:(覆盖已有的键)

dict1.update(dict2)
dict1['name'] = 'xiao' # 改变原有值
查:

print(dict1['name']) ### lixiao 若dict1中没有,则报错
dict1.get('jisdjsnai','默认是None')# 判断元素在不在 # 找不到返回'默认是None


其他操作:

print(dict1.keys())    # ## dict_keys(['name', 'age'])
for i in dict1:
    print(i)           # ##打印键 name  age
a,b = [5,9]
print(a,b)    # ##5 9    所以键值对也可以这样赋值
dict1.items()   # 打印出键值对
for key,value in dict1.items():
    print(key,":",value)         # ##name : sunv  age : 18

fromkeys:

①列表

dict1 = dict.fromkeys([1,2,3],'梦样')
print(dict1)              # ##{1: '梦样', 2: '梦样', 3: '梦样'}

dict2 = dict.fromkeys(['芳华绝代','缘份'],[])
dict2['芳华绝代'].append('张国荣')
dict2['缘份'].append('梅艳芳')
print(dict2)    ###{'芳华绝代': ['张国荣', '梅艳芳'], '缘份': ['张国荣', '梅艳芳']}
②字符串

dict3 = dict.fromkeys(('张国荣'),'帅')
print(dict3)     # {'张': '帅', '国': '帅', '荣': '帅'}

③元组

dict3 = dict.fromkeys(('张敬轩','lin'),'6')
print(dict3)     # {'张敬轩': '6', 'lin': '6'}


把sunv变成Sunv:

dict3 = {'name':['sunv','lixiao',59]}
dict3['name'][0] = dict3['name'][0].capitalize()
print(dict3)           # ## {'name': ['Sunv', 'lixiao', 59]}


补充:

列表:当循环列表时,如果在循环中删除某个或者某些元素,列表元素个数改变,索引改变,容易出错。

字典:当循环字典时,如果在循环中删除某个或者某些键值对,字典的键值对个数改变,长度改变,容易出错

可循环列表,删字典的键:

dict4 = {'k1':'barry','张敬轩':'故园花茶','k2':'alex'}
a = dict4.keys()
for i in list(a):
    if 'k' in i:
        del dict4[i]
print(dict4)             # ##{'张敬轩': '故园花茶'}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值