python字典操作和内置方法

一 字典基本介绍

python中只有字典是映射结构,通过key取值,并且key是不可变数据类型,而value可以是任意数据类型。

字典通过一个花括号,里面存放key:value的数据结构来定义。理论上讲,字典是无限大的。

二 字典常用操作

1 按key取值
dic = {'name':'szz','age':18,'sex':'male')
name = dic['name']
print(name)
# 输出结果为 'szz'
2 计算字典的长度
# len方法计算字典的长度
dic = {'name':'szz','age':18,'sex':'male')
len_of_dic = len(dic)
print(len_of_dic)
# 输出结果为 3
3 字典删除操作
d={'x':1,'y':2,'z':3}
del d['y']
print(d)
# 输出结果为 {'x':1,'z':3}

res=d.pop('y')
print(d)
print(res)
pop有返回值

res=d.popitem()
print(res)
# 输出结果为 ('z':3)
4 key,value的操作
# 得到字典中所有的键
d = {'name':'szz','age':18,'sex':'male) print(d.keys()) print(list(d.keys())) # 输出结果为 ('name','age','sex) # ['name','age','sex']
# 得到字典中所有的值,用for循环取值
d={'x':1,'y':2,'z':3}
v = d.values()
for i in v:
    print(i)
# 输出结果为 1 2 3
d = {'name':'szz','age':18,'sex':'male','x':1,'y':2,'z':3)
for k,v in d.items():
    print(k,v)
# 输出结果为 'name' 'szz' 'age' 18 'sex' male 'x' 1 'y' 2 'z' 3
# 如果直接对字典进行for循环,则默认循环字典的key
5 get方法
d={'name':'szz','age':18,'sex':'male','hobbies':[1,2,3]}
v=d.get('name')
print(v)
# 当不确定字典中是否存在某一个键值时,使用get方法更安全
6 update方法
# update 有新键值对的话会添加进字典,有相同的key则会覆盖旧值
d={'name':'szz','age':18,'sex':'male','hobbies':['read','movie']}
d1={'age':22,'addr':'shanghai'}
d.update(d1)
# 直接在d的基础上改变
7 fromkeys
# 给定一个一直列表,用该列表中的值当做key初始化一个字典
keys=['name','age','sex']
d={}
for k in keys:
    d[k]=Noned={}.fromkeys(keys,None)
print(d)
# 输出结果为 {'name':None,'age':None,'sex':None}
8 setdefault
# key存在则修改,不存在则添加
d={"x":1,"y":2}
res=d.setdefault('x',11111) # 在key存在的情况下不修改值,会返回原值print(d)
print(res)
# 输出结果 {'x':1,'y':2}
# 输出结果 1

res=d.setdefault('z',11111) # 在key不存在的情况下会新增值,会返回新增# 的值
print(d)
print(res)
# 输出结果 {'x':1,'y':2','z':11111)
# 输出结果 11111
9 setdefault使用场景
s='hello world world say hello  hello'
d={'hello':4,'word':2,'say':1}

d={}
words=s.split()
# print(words) 
for word in words: 
    d[word]=words.count(word) 
    d.setdefault(word,words.count(word))

print(d)
# 输出结果为 {'hello':4,'word':2,'say':1}

 

转载于:https://www.cnblogs.com/zuanzuan/p/9671150.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值