码迷,mamicode.com
首页 > 编程语言 > 详细

python基础之字典篇

时间:2018-10-02 20:09:05      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:赋值   基础   upd   可迭代对象   问题   声明   The   print   error:   

tips:字典是另一种可变容器模型,且可存储任意类型对象,字典是由键值对构成,键必须是不可迭代对象,值可以为任意对象

一,字典的声明与赋值

#声明一个字典
dict = {}
#字典初始化赋值
dict = {"name":"wuxiaoshi","major":"programmer"}

 

二,字典的查询

#读取字典
dict = {"name":"wuxiaoshi","major":"programmer"}
dict[name] # wuxiaoshi
dict[major] #programmer

#循环读取
for key,item in dict.items():
    print(item) # 值 wuxiaoshi,programmer
    print(key)  #键 name,major

 

 

三,字典的新增

 

# 字典的添加
dict = {}
dict[name] = wuxiaoshi
dict[age] = 20
print(dict) #{"name":"wuxiaoshi","age":20}

#setdefault(key,value) 键无则添加 键有则不变,值无就是None
dict = {}
dict.setdefault(age,20)
dict.setdefault(name:wuxiaoshi)
dict.setdefault(name:xiaowushi)
dict.setdefault(hobbdy)
print(dict) # {‘age‘: 20, ‘name‘: ‘wuxiaoshi‘, ‘hobbdy‘: None}

 

 

四,字典的删除

 

#pop(key) 如果key存在,则删除key相应的这个键值对,并返回key对应的value,否则,将会报错 KeyError 
dict = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
print(dict.pop(name)) # wuxiaoshi
print(dict) #{‘age‘: 20, ‘hobby‘: ‘reading,writting‘}
print(dict.pop(a)) #  KeyError:a

#popitem() D.popitem() -> (k, v), remove and return some (key,value) pair as a 2-tuple; but raise KeyError if D is empty.
dict = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
print(dict.popitem()) # 理论上是随机删除一个,可能会有问题

#del 删除
dict = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
del dict[name] #删除 name的键值对
del dict #删除整个字典,从内存中把空间抹掉

#clear 清空,但是保留内存地址
dict.clear()  # {}

 

 

 

 

五,字典的更新

# 直接更改方法
dict = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
dict[name] = xiaowushi
print(dict) #{‘name‘: ‘xiaowushi‘, ‘age‘: 20, ‘hobby‘: ‘reading,writting‘}

#update
‘‘‘
update(...) method of builtins.dict instance
    D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.
    If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
    If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
    In either case, this is followed by: for k in F:  D[k] = F[k]
   翻译过来就是 有则更新,无则添加
‘‘‘
dict1 = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
dict2 = {"name":"furao","major":"programmer"}

dict1.update(dict2) # {‘name‘: ‘furao‘, ‘age‘: 20, ‘hobby‘: ‘reading,writting‘, ‘major‘: ‘programmer‘}

dict2.update(dict1) #{‘name‘: ‘wuxiaoshi‘, ‘major‘: ‘programmer‘, ‘age‘: 20, ‘hobby‘: ‘reading,writting‘}

 

六,字典的内置函数

 

# get()  通过Key来找值,如果key不存在,可以设置一个默认值
dict = {"name":"furao","major":"programmer"}

dict.get("name")  # furao
dict.get(age,18) # 18

#keys() 获取字典中的key 返回dict_keys
dict = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
dict.keys() # dict_keys([‘name‘, ‘age1‘, ‘hobby‘]) 如果想返回列表 则list强转
list(dict.keys()) # [‘name‘, ‘age‘, ‘hobby‘]

#values()
dict = {"name":"wuxiaoshi","age":20,"hobby":"reading,writting"}
dict.values() # [‘wuxiaoshi‘, 20, ‘reading,writting‘]

#items()
dict.items() # [(‘name‘, ‘wuxiaoshi‘), (‘age1‘, 20), (‘hobby‘, ‘reading,writting‘)]

 

python基础之字典篇

标签:赋值   基础   upd   可迭代对象   问题   声明   The   print   error:   

原文地址:https://www.cnblogs.com/wuxiaoshi/p/9736740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!