字典的使用

一、字典的特性

字典是无序的,数据关联性强,键值对,唯一一个映射的数据类型
字典的键必须是可哈希的(不可变的数据类型:字符串,数字,布尔值,元祖),并且是唯一的
不可哈希的(可变的数据类型:列表,字典,集合)

二、字典的增

# 直接增加
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
dic['weight'] = 75 # 如果不存在则直接添加
dic['name'] = 'ritian' # 如果存在则会替换原有的值
print(dic)
# setdefault有键值对不做改变,没有才会添加
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
dic.setdefault('k') # 'k'的值默认为None
dic.setdefault('k','v') # 'k'的值为'v'
dic.setdefault('name','v') # 如果有这个键,则不会有改变,没有这个键才会添加
print(dic)

三、字典的删

# pop删除,有返回值
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
print(dic.pop('name')) # 按照键删除,返回键对应的值
# print(dic.pop('123')) # 如果键不存在则会报错
print(dic.pop('123','没有不报错')) # 此时如果没有键会返回'没有不报错',逗号后面为返回值
# popitem随机删除键值对
print(dic.popitem()) # 随机删除键值对,会将删除的键值对以元祖的形式返回
# clear清空
dic.clear()
print(dic)
# del删除
# del dic['name'] # 如果没有这个键会报错
print(dic)

四、字典的改

# 直接修改
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
dic['name'] = 'jinxin'
print(dic)
# update更新
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
dic1 = {'name':'barry','job':'teacher'}
dic.update(dic1)
print(dic) # 将dic1的覆盖dic,dic中有的覆盖,没有的添加进来
print(dic1) # dic1不变

五、字典的查

# 直接查
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
print(dic['name']) # 如果键没有会报错
# get
print(dic.get('name')) # 如果没有这个键会返回None
print(dic.get('name','没有这个键')) # 如果没有这个键会返回'没有这个键'

六、字典的特殊用法

# 字典里特殊的用法
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
print(dic.keys()) # dict_keys(['age', 'hobby', 'name'])将所有的键放入一个列表
for key in dic.keys(): # for i in dic:效果等同
print(key) print(dic.values()) # dict_values([56, 'oldwomen', 'alex'])将所有的值放入一个列表
for value in dic.values():
print(value) print(dic.items()) # dict_items([('age', 56), ('hobby', 'oldwomen'), ('name', 'alex')])
for key,value in dic.items():
print(key,value)

最新文章

  1. Tableau地图移动
  2. Git学习笔记(7)——多人协作
  3. STORM_0004_windows下zookeeper的伪集群的搭建
  4. hasshmap输出value
  5. 如何使用SecureCRT连接vmware下ubuntu
  6. Linux学习笔记——如何使用共享库交叉编译
  7. uva 1556 - Disk Tree(特里)
  8. Redis .NET开源组件Beetle.Redis
  9. 遍历HashMap的最佳方式
  10. (转载)JProfiler试用手记
  11. 使用Mongodb+Shiro+SpringMVC实现动态权限分配
  12. PHP 支持加解密的函数
  13. UNIX网络编程——心跳包
  14. SQL server 数据库的版本为661,无法打开,此服务器只支持655版及更低版本。不支持降级路径
  15. ubuntu mysql Access denied for user root@localhost
  16. 无需操作系统直接运行 Python 代码
  17. Linux笔记-SIGHUP与daemon
  18. hdu 3068 最长回文【manacher】(模板题)
  19. P2756 飞行员配对方案问题
  20. 114ic电子元器件网

热门文章

  1. 理解Callable 和 Spring DeferredResult(翻译)
  2. php-fpm nginx 使用 curl 请求 https 出现 502 错误
  3. hdu6060 RXD and dividing 贪心
  4. HBase MemStore与HStoreFile 的大小分析
  5. cuDNN升级
  6. String类和StringBuffer类
  7. Install EPEL repo on CentOS 7 / RHEL 7
  8. 【JavaEE】SSH+Spring Security整合及example
  9. 金典 SQL笔记(9)
  10. JavaScript------Throw和Try-Catch的使用