python常用数据类型操作-字典

该总结来源于网络王顺子的课程课件

 

字典是无序的, 可变的键值对集合

 

1、定义方式

方式1:{key: value,key: value...}

例如{"name": "sz","age": 18}

dic = {'name': 'zsw', 'age': 18}

print(dic)

结果:

{'name': 'zsw', 'age': 18}


方式2: fromkeys(S,v=None)

静态方法

      类和对象都可以调用

类调用

      dict.fromkeys("abc",666)-> {'a': 666, 'c': 666, 'b': 666}

      此处的dict, 是指字典类型

对象调用

      dic.fromkeys("abc",666) -> {'a': 666, 'c': 666, 'b': 666}

      此处的dic, 是实例化的字典对象

 

dic = dict.fromkeys('abc', 666)

print(dic)

结果:

{'a': 666, 'b': 666, 'c': 666}


注意:

1、key不能重复。如果重复,后值会把前值覆盖

2、key必须是任意不可变类型。可变(列表,字典,可变集合,...);不可变(数值,布尔,字符串,元组,...)

原因:


 

2、操作方式

2.1

dic[key] = value,当key在原字典中不存在时, 即为新增操作

 

dic = {'name': 'zsw', 'age': 18}
dic['ad'] = 'sjz'

print(dic)

结果:

{'name': 'zsw', 'age': 18, 'ad': 'sjz'}


2.2

del dic[key],key必须要存在

dic = {'name': 'zsw', 'age': 18}
del dic['name']

print(dic)

结果:

{'age': 18}


dic.pop(key[, default])

      删除指定的键值对, 并返回对应的值

      如果key, 不存在, 那么直接返回给定的default值; 不作删除动作

      如果没有给定默认值, 则报错

dic = {'name': 'zsw', 'age': 18}

result = dic.pop('name')

print(result)
print(dic)

结果:

zsw
{'age': 18}


dic.popitem()

      删除按升序排序后的第一个键值对, 并以元组的形式返回该键值对

      如果字典为空, 则报错

dic = {'name': 'zsw', 'age': 18}

result = dic.popitem()

print(result)
print(dic)

结果:

('age', 18)
{'name': 'zsw'}


dic.clear()

      删除字典内所有键值对,返回None

      注意, 字典对象本身还存在, 只不过内容被清空,注意和del的区别

dic = {'name': 'zsw', 'age': 18}

result = dic.clear()

print(result)
print(dic)

结果:

None
{}

 

2.3

只能改值, 不能改key

修改单个键值对

      dic[key]= value

           直接设置, 如果key不存在, 则新增, 存在则修改

dic = {'name': 'zsw', 'age': 18}

dic['age'] = 28

print(dic)

结果:

{'name': 'zsw', 'age': 28}


批量修改键值对

      oldDic.update(newDic)

           根据新的字典, 批量更新旧字典中的键值对

           如果旧字典没有对应的key, 则新增键值对

 

dic = {'name': 'zsw', 'age': 18}

dic1 = {'age': 28, 'ad': 'sjz'}

result = dic.update(dic1)

print(result)

print(dic)

结果:

None
{'name': 'zsw', 'age': 28, 'ad': 'sjz'}


2.4

获取单个值:

方式1

dic[key]

      如果key, 不存在, 会报错

dic = {'name': 'zsw', 'age': 18}

result = dic['age']

print(result)
结果:18


方式2

dic.get(key[, default])

      如果不存在对应的key, 则取给定的默认值default

      如果没有默认值, 则为None,但不会报错

      但是, 原字典不会新增这个键值对

dic = {'name': 'zsw', 'age': 18}

result = dic.get('age')
result1 = dic.get('ad')

print(result)
print(result1)
print(dic)

结果:

18
None
{'name': 'zsw', 'age': 18}


方式3

dic.setdefault(key[,default])

      获取指定key对应的值

      如果key不存在, 则设置给定默认值, 并返回该值

      如果默认值没给定,则使用None代替

 

dic = {'name': 'zsw', 'age': 18}

result = dic.setdefault('age')
result1 = dic.setdefault('ad', 'sjz')

print(result)
print(result1)
print(dic)

结果:

18
sjz
{'name': 'zsw', 'age': 18, 'ad': 'sjz'}


获取所有键:

dic.keys()

dic = {'name': 'zsw', 'age': 18}

result = dic.keys()

print(result)

结果:

dict_keys(['name', 'age'])

 

获取所有值:

dic.values()

dic = {'name': 'zsw', 'age': 18}

result = dic.values()

print(result)

结果:

dict_values(['zsw', 18])


 

获取字典的键值对

dic.items()

 

dic = {'name': 'zsw', 'age': 18}

result = dic.items()

print(result)

结果:

dict_items([('name', 'zsw'), ('age', 18)])


遍历:

for in。for x,y in info.items()

dic = {'name': 'zsw', 'age': 18}

for x, y in dic.items():
    print(x, y)

结果:

name zsw
age 18

 

2.5 计算

len(info)。键值对的个数

dic = {'name': 'zsw', 'age': 18}

result = len(dic)

print(result)
结果:2

 

2.6 判定

x in dic。判定dic中的key, 是否存在x

x not in dic。判定dic中的key, 是否不存在x

dic = {'name': 'zsw', 'age': 18}

result = 'name' in dic
result1 = 'name' not in dic

print(result)
print(result1)

结果:

True
False


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值