当前位置: 首页 > news >正文

Python字典

字典是Python中唯一内建的映射类型,是作为可变的哈希表实现的,字典中的值储存在特定的键下,键可以是数字、字符串或元祖。

创建字典:

phonebook={ 'Alice' : 'earth' , 'Beth' : 9102 }

fdict=dict((['x',1],['y',2]))   ->    fdict={'y':2,'x':1}

ddict={}.fromkeys(('x','y'),-1)    ->   {'y':-1,'x':-1}

edict={}.fromkeys(('foo','bar'))   ->  {'foo':None,'bar':None}

删除操作:

del dict['name']      删除键为name的项

dict.clear()     删除所有项

del dict     删除整个字典

dictl.pop('name')    删除并返回键为name的项

工厂函数:

dict()

dict(zip(('x','y'),(1,2)))  ->  {'y':2,'x':1}

dict([['x',1],['y',2]])  ->  {'y':2,'x':1}

dict(x=1,y=2)  ->  {'y':2,'x':1}

dict8={'y':2,'x':1}   dict9=dict(**dict8)   ->  dict9=dict8

由键-值对组成,键是唯一的,值不唯一.键重复时取最后一个。是一种无序的数据集

所有不可变的类型都是可哈希的,可哈希的类型都可以作为字典的键。

基本字典操作len(d)返回字典d中的键值对组合的数量
 d[k]返回字典d中键k的值
 d[k]=v将值v关联到字典d中键k上
 del d[k]删除键为k的项
 k in d检查d中是否含有键为k的项

例子:

Peple={

  'Alice':{

    'phone':'2312',

    'addr':'foo driver 23'

  }

  'Beth':{

    'phone':'4453',

    'addr':'baz vav'

  }

访问里面的项目应该是people[name][key]

 

字典的格式化字符串:

phone {'Beth':'9102','Alice':'2321'}

"Alice's phone number is %(Alice)s." % phone

 

字典中的方法:

cleard.clear()清除了字典d中的所有值无返回值
copyy=x.copy()浅复制 
deepcopydc=deepcopy(d)深复制  
fromkeys 

{}.fromkeys(['name','age'])

返回{'age':None,'name':None}

使用给定的键建立新的字典,每个键对应一个默认的None 
get 

d['name']

d.get('name')

不存在会报错

不存在不会报错,返回None

 
has_keyd.has_key('name') 是否含有特定的键,相当于k in d返回布尔值
items/iteritems d.items()将字典中所有项以列表形式返回返回键值对形式的列表 
keys/iterkeys  

将字典中的键以列表形式返回

iterkeys返回针对键的迭代器

 
pop d.pop('x') 移出字典d中键为x的项返回值为键x的值 
popitem d.popitem() 返回字典d中随机项(键值),并从原字典中删除返回随机元祖,一对键值
setdefault d.setdefault('name1','aaa') 

查找键为name1的值,并返回键name1的值

若键name1不存在,则给d字典添加新的键值‘name1’:'aaa'

返回键值
update d.update(x)把字典x中的值更新到字典d上,若有相同的键则会进行覆盖 无返回值 
values/itervalues d.values()返回字典d中的值,不包含键,itervalues返回值的迭代器 以列表形式返回字典值
dict   

 两个列表组合成一个字典:

>>> a = [1,2,3,4]
>>> d = ['fa','fb','fc','fd','fe']
>>> dict(zip(a,d))
{1: 'fa', 2: 'fb', 3: 'fc', 4: 'fd'}

转载于:https://www.cnblogs.com/zz27zz/p/7389409.html

相关文章:

  • 彻底搞清楚C/C++中日期和时间 time_t与struct tm,time(NULL),ctime;strftime
  • 修改博客园主题
  • Expression Blend实例中文教程(13) - 控件模板快速入门ControlTemplates
  • 微软Azure 文档地址
  • [转]优化MySQL数据库性能的八大“妙手”
  • 罗湖致力打造智慧城市标杆区
  • 转:Win32 同步机制摘要
  • create raid5
  • 简析几何叉乘与安培力的内在逻辑
  • Windows下svn客户端TortoiseSVN的安装和操作
  • SNF快速开发平台MVC-名片管理(实际名片样式)
  • 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求
  • Look-and-Say 数列
  • 线程基础概念
  • Scanner类中输入int数据,再输入String数据不正常的
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • canvas 五子棋游戏
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • EOS是什么
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • js继承的实现方法
  • Laravel5.4 Queues队列学习
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Redis 中的布隆过滤器
  • 给Prometheus造假数据的方法
  • 基于 Babel 的 npm 包最小化设置
  • 如何编写一个可升级的智能合约
  • 设计模式走一遍---观察者模式
  • 限制Java线程池运行线程以及等待线程数量的策略
  • Prometheus VS InfluxDB
  • 阿里云服务器购买完整流程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #Linux(Source Insight安装及工程建立)
  • $GOPATH/go.mod exists but should not goland
  • (4)STL算法之比较
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (ZT)一个美国文科博士的YardLife
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (强烈推荐)移动端音视频从零到上手(上)
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (顺序)容器的好伴侣 --- 容器适配器
  • ***监测系统的构建(chkrootkit )
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .CSS-hover 的解释
  • .Net 4.0并行库实用性演练
  • .Net mvc总结
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • [《百万宝贝》观后]To be or not to be?
  • [100天算法】-二叉树剪枝(day 48)