python 字典的常见方法

1、获取字典的值

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }


print students_info["zhangsan"]              # {'age': 15, 'score': 80}
print students_info["zhangsan"]["score"]     # 80
print print students_info["xiaoming"]

Traceback (most recent call last):
  File "xxx.py", line 87, in <module>
    print students_info["xiaoming"]
KeyError: 'xiaoming'

2、添加数据(键值对)

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }


students_info["xiaoming"] = {"age": 15, "score": 100}
print students_info

# {'lisi': {'age': 14, 'score': 90}, 'xiaoming': {'age': 15, 'score': 100}, 'zhangsan': {'age': 15, 'score': 80}, 'wangwu': {'age': 16, 'score': 70}}

3、删除数据(键值对)

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

del students_info["zhangsan"]
print students_info
# {'lisi': {'age': 14, 'score': 90}, 'wangwu': {'age': 16, 'score': 70}}

4、修改数据(键值对)

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }


students_info["lisi"] = {"age": 14, "score": 95}
print students_info  
# {'lisi': {'age': 14, 'score': 95}, 'zhangsan': {'age': 15, 'score': 80}, 'wangwu': {'age': 16, 'score': 70}}

5、判断键值对是否存在

如果要判断字典是否包含指定的 key,则可以使用 in 或 not in 运算符。需要指出的是,对于 dict 而言,in 或 not in 运算符都是基于 key 来判断的

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

print ("lisi" in students_info)       # True
print ("age" in students_info)        # False
print ("age" in students_info["zhangsan"])   # True
print ("xioaming" in students_info)   # False

print ("age" not in students_info)    # True

6、clear()方法

clear() 用于清空字典中所有的 key-value 对,对一个字典执行 clear() 方法之后,该字典就会变成一个空字典。

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

students_info.clear()
print students_info      #{}

7、get()方法

get() 方法其实就是根据 key 来获取 value,它相当于方括号语法的增强版,当使用方括号语法访问并不存在的 key 时,字典会引发 KeyError 错误;但如果使用 get() 方法访问不存在的 key,该方法会简单地返回 None,不会导致错误

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

print students_info.get("zhangsan")   # {'age': 15, 'score': 80}
print students_info.get("xiaoming")   # None

8、update()方法

update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典。在执行 update() 方法时,如果被更新的字典中己包含对应的 key-value 对,那么原 value 会被覆盖;如果被更新的字典中不包含对应的 key-value 对,则该 key-value 对被添加进去。

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

students_info.update({"zhangsan":{"age": 15, "score": 100}})
print students_info
# {'lisi': {'age': 14, 'score': 90}, 'zhangsan': {'age': 15, 'score': 100}, 'wangwu': {'age': 16, 'score': 70}}
students_info.update({"xiaoming":{'age': 18, 'score': 85}})
print students_info
# {'lisi': {'age': 14, 'score': 90}, 'xiaoming': {'age': 18, 'score': 85}, 'zhangsan': {'age': 15, 'score': 100}, 'wangwu': {'age': 16, 'score': 70}}

9、items()方法

以列表返回可遍历的(键, 值) 元组数组

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }


print students_info.items()
# [('lisi', {'age': 14, 'score': 90}), ('zhangsan', {'age': 15, 'score': 80}), ('wangwu', {'age': 16, 'score': 70})]

10、 keys()方法

以列表返回一个字典所有的键

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }


print students_info.keys()          # ['lisi', 'zhangsan', 'wangwu']
print students_info["zhangsan"].keys()   # ['age', 'score']

11、values()方法

以列表返回字典中的所有值

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

print students_info.values()           # [{'age': 14, 'score': 90}, {'age': 15, 'score': 80}, {'age': 16, 'score': 70}]
print students_info["wangwu"].values()  # [16, 70]

12、pop()方法

pop() 方法用于获取指定 key 对应的 value,并删除这个 key-value 对

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

students_info.pop("lisi")
print students_info   # {'zhangsan': {'age': 15, 'score': 80}, 'wangwu': {'age': 16, 'score': 70}}

13、popitem()方法

popitem() 方法用于弹出字典中最后一个key-value对

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

students_info.popitem()
print students_info   # {'zhangsan': {'age': 15, 'score': 80}, 'wangwu': {'age': 16, 'score': 70}}

14、setdefault()方法

setdefault() 方法也用于根据 key 来获取对应 value 的值。但该方法有一个额外的功能,即当程序要获取的 key 在字典中不存在时,该方法会先为这个不存在的 key 设置一个默认的 value,然后再返回该 key 对应的值。

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

students_info.setdefault("zhangsan", {"age": 20, "score": 80})
print students_info
# {'lisi': {'age': 14, 'score': 90}, 'zhangsan': {'age': 15, 'score': 80}, 'wangwu': {'age': 16, 'score': 70}}
students_info.setdefault("xiaoming", {"age": 18, "score": 75})
print students_info
# {'lisi': {'age': 14, 'score': 90}, 'xiaoming': {'age': 18, 'score': 75}, 'zhangsan': {'age': 15, 'score': 80}, 'wangwu': {'age': 16, 'score': 70}}

15、fromkeys()方法

fromkeys() 方法使用给定的多个key创建字典,这些key对应的value默认都是None;也可以额外传入一个参数作为默认的value。该方法一般不会使用字典对象调用(没什么意义),通常会使用 dict 类直接调用

score_info = dict.fromkeys(["zhangsan", "lisi"])
print score_info
# {'lisi': None, 'zhangsan': None}
score_info = dict.fromkeys(("zhangsan", "lisi"), 80)
print score_info
# {'lisi': 80, 'zhangsan': 80}

16、len()方法

计算字典元素个数,即键的总数

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

print len(students_info)    # 3          
print len(students_info["zhangsan"])  # 2

17、str()方法

输出字典可打印的字符串

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

print str(students_info)      # {'lisi': {'age': 14, 'score': 9
print str(students_info["lisi"])   #  {'age': 14, 'score': 90} 

18、type()方法

返回输入的变量类型,如果变量是字典就返回字典类型

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

print type(students_info)  # <type 'dict'>

19、遍历key的值

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

for key in students_info:                
    print key                            
"""                                      
lisi                                     
zhangsan                                 
wangwu                                   
"""                                      
                                         
for key in students_info["wangwu"]:      
    print key                            
                                         
"""                                      
age                                      
score                                    
"""                                      

19、遍历value的值

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

for value in students_info.values():                                                   
    print value                                                                        
                                                                                       
"""                                                                                    
{'age': 14, 'score': 90}                                                               
{'age': 15, 'score': 80}                                                               
{'age': 16, 'score': 70}                                                               
"""                                                                                    
                                                                                       
for value in students_info["lisi"].values():                                           
    print value                                                                        
                                                                                       
"""                                                                                    
14                                                                                    
90                                                                                    
"""                                                                                    
                                                                                       

20、遍历字典键值对

students_info = {"zhangsan": {"age": 15, "score": 80},
                 "lisi": {"age": 14, "score": 90},
                 "wangwu": {"age": 16, "score": 70}
                 }

# 返回字符串
for key in students_info:                           
    print key + ":" + str(students_info[key])       
                                                    
"""                                                 
lisi:{'age': 14, 'score': 90}                       
zhangsan:{'age': 15, 'score': 80}                   
wangwu:{'age': 16, 'score': 70}                     
"""    

# 返回元组
for i in students_info.items():                                                               
    print i                                                                                   
                                                                                              
"""                                                                                           
('lisi', {'age': 14, 'score': 90})                                                            
('zhangsan', {'age': 15, 'score': 80})                                                        
('wangwu', {'age': 16, 'score': 70})                                                          
"""                                                                                           
 
  
for key, value in students_info.items():
    print key + ":" + str(value)

"""
lisi:{'age': 14, 'score': 90}
zhangsan:{'age': 15, 'score': 80}
wangwu:{'age': 16, 'score': 70}
"""

参考文档:

https://www.itcast.cn/news/20211221/15221563284.shtml#mark-H3-103

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值