直接创建

d = {'age': 23, 'name': 'Daniel', 'sex': 1}

输出结果:

{'age': 23, 'name': 'Daniel', 'sex': 1}

dict函数

# 通过序列对建立字典

vaulues = [('name', 'Daniel'), ('age', 23), ('sex', 1)]

print dict(values)

# 通过关键字建立字典

print dict(name='Daniel', age=23, sex=1)

# 如果 dict 不传入任何参数将会返回一个空字典

print dict()

输出结果:

{'age': 23, 'name': 'Daniel', 'sex': 1}

{'age': 23, 'name': 'Daniel', 'sex': 1}

{}

基本字典操作

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

# 返回d项中(键-值对)的数量

len(d)

# 删除键为name的项

del d['age']

# 检查d中是否含有键为name的项,返回True或者False

'name' in d

提示:在字典中检查键的成员资格比在列表中检查值的成员资格更高效,数据结构的规模越大,两者的效率差距越明显。

字典的键类型(任何不可变类型):int, float, string, tuple

{1: 'Daniel'} # int

{1.2: 'Daniel'} # float

{'name': 'Daniel'} # string

{('name', 'Daniel'): 23} # tuple

字典的格式化字符串

data = {'name': 'Daniel', 'age': 23, 'sex': 1}

template = 'name=%(name)s,age=%(age)s,sex=%(sex)s'

print template % data

template = 'name={name},age={age},sex={sex}'

print template.format(**data)

输出结果:

name=Daniel,age=23,sex=1

name=Daniel,age=23,sex=1

字典方法

1、clear 清除字典中所有项

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

d.clear()

print d

>>> {}

2、copy 返回一个具有相同键值对的新字典(这个方法实现的浅复制)

data1 = {'name': 'Daniel', 'machines': ['foo', 'bar', 'baz']}

data2 = data1.copy()

data1['name'] = 'biu'

data1['machines'].remove('bar')

print data1

print data2

输出结果:

{'name': 'Daniel', 'machines': ['foo', 'baz']}

{'name': 'biu', 'machines': ['foo', 'baz']}

浅复制说明:(待说明...)

3、deepcopy 返回一个具有相同键值对的新字典(这个方法实现的深复制)

from copy import deepcopy

data1 = {'name': 'Daniel', 'machines': ['foo', 'bar', 'baz']}

data2 = deepcopy(data1)

data1['name'] = 'biu'

data1['machines'].remove('bar')

print data1

print data2

输出结果:

{'name': 'biu', 'machines': ['foo', 'baz']}

{'name': 'Daniel', 'machines': ['foo', 'bar', 'baz']}

深复制说明:(待说明...)

4、fromkeys 使用给定的键建立新的字典,每个键默认对应的值为None

print dict.fromkeys(['name', 'age'])

# 如果不想使用None作为默认值,也可以自己提供默认值

print dict.fromkeys(['name', 'age'], 'null')

输出结果:

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

{'age': 'null', 'name': 'null'}

5、get 是一个更宽松的访问字典项的方法,访问一个不存在的键时,没有任何异常,而得到了None值。还可以自定义默认值,替换None

d = {}

print d.get('name')

print d.get('name', 'N/A')

d['name'] = 'Daniel'

print d.get('name')

输出结果:

None

N/A

Daniel

6、has_key 检查字典中是否含有给出的键,相当于表达式 k in d,使用那种方式很大程度取决于个人爱好。Python 3.0中不包含这个函数。

d = {}

print d.has_key('name')

d['name'] = 'Daniel'

print d.has_key('name')

输出结果:

False

True

7、items和iteritems

items将所有的字典以列表方式返回,这些列表项中的每一项都来自(键, 值)。但是在返回是并没有特殊的顺序。

iteritems的作用大致相同,但是会返回一个迭代器对象而不是列表

d = {'title': 'Python', 'url': 'http://www.python.org', 'spam': 0}

print d.items()

d = {'title': 'Python', 'url': 'http://www.python.org', 'spam': 0}

it = d.iteritems()

print it

print list(it)

输出结果:

[('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python')]

[('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python')]

8、keys和iterkeys,keys将字典中的键以列表形式返回,而iterkeys则返回针对键的迭代器

d = {'title': 'Python', 'url': 'http://www.python.org', 'spam': 0}

print d.keys()

print d.iterkeys()

输出结果:

['url', 'spam', 'title']

9、pop 用来获得对应于给定键的值,然后将这个键-值对从字典中移除

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

d.pop('age')

print d

输出结果:

{'name': 'Daniel', 'sex': 1}

9、popitem 弹出随机的项,因为字典并没有最后的元素或者其它有关顺序的概念

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

print d.popitem()

print d

输出结果:

('age', 23)

{'name': 'Daniel', 'sex': 1}

10、setdefault 类似于get方法,就是能够获得与给定键相关关联的值,还能在字典中不含有给定键的情况下设定相应的键值

d = {}

print d.setdefault('name', 'N/A')

print d

d['name'] = 'Daniel'

print d.setdefault('name', 'N/A')

print d

输出结果:

N/A

{'name': 'N/A'}

Daniel

{'name': 'Daniel'}

11、update 可以利用一个字典项更新另一个字典

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

x = {'name': 'biu'}

d.update(x)

print d

d.update(name='biubiu')

print d

提供的字典中的项会被添加到旧的字典中,若有相同的键则会进行覆盖

输出结果:

{'age': 23, 'name': 'biu', 'sex': 1}

{'age': 23, 'name': 'biubiu', 'sex': 1}

12、values和itervalues,values方法以列表的形式返回字典中的值,itervalues返回值的迭代器。与返回键的列表不同的是,返回值的列表中可以包含重复元素

d = {1:1, 2:2, 3:3, 4:1}

print d.values()

输出结果:

[1, 2, 3, 1]

python字典的建立和输出_字典的创建和使用相关推荐

  1. python基础笔记第四课_字典集合笔记

    一.可变与不可变类型: 1.不可变类型:定义好变量后,不能修改.添加.删除 int .float. tuple. bool. str 都为不可变类型 2.可变类型:定义好变量后,可进行修改内部元素 l ...

  2. python字典增删改查项目_字典的增删改查如何操作?

    什么是字典? 字典是一种可变,无序,可迭代的储存形式 在字典中它们的储存是以键值对来存的! 也就是吧两个相关的值关联起来,通过我的键来查找我的值! 可以存储各种的数据类型 ! 字典的操作跟列表一样,分 ...

  3. python讲1020逆序输出_手把手带你学 Python3(九)| 快速实现数据处理的不二工具(文末有彩蛋)...

    ", line 1, in TypeError: 'int' object is not callable #当然实际代码绝对不能这么写,这里是为了说明函数名也是变量.要恢复abs函数,请重 ...

  4. python输入一个整数倒序输出_利用Python实现倒序任意整数

    这是很早以前学习C时候做过的一个练习题,题目的要求大概是把用户输入的三位数倒序输出,比如说用户输入123,然后程序应该输出的结果是321.如果遇到用户输入100,那么程序应该输出1.然后我给扩展一下, ...

  5. python以列表的形式输出_简单介绍python输出列表元素的所有排列形式

    今天小编就为大家分享一篇浅谈python输出列表元素的所有排列形式,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 例如: ['a', 'b', 'c'] 输出 ['a', 'b', ...

  6. python星座进行分析并输出_怎么利用python输出星座

    怎么利用python输出星座?下面给大家带来具体方法: 思路: 1.定义一个get_constellation(month,date)函数,来获取出生日期. 2.创建一个dates和constella ...

  7. python flask 表单数据输出_将数据从HTML表单发送到Flask中的Python脚本

    我的Python脚本中有下面的代码: def cmd_wui(argv, path_to_tx): """Run a web UI.""" ...

  8. python处理nc文件并输出_利用python如何处理nc数据详解

    前言 这两天帮一个朋友处理了些 nc 数据,本以为很简单的事情,没想到里面涉及到了很多的细节和坑,无论是"知难行易"还是"知易行难"都不能充分的说明问题,还是& ...

  9. python判断密码强度并输出_密码强度判断

    [python]代码库def pdsz(cd): nnnn = False for c in cd: if c.isnumeric(): nnnn = True break return nnnn d ...

最新文章

  1. 馅饼还是陷阱,TMG2010升级经验谈
  2. storm源码之storm代码结构【译】
  3. python怎么读取文件-python怎么读写文件操作
  4. 适用于System Center 2016所需前期准备工作
  5. MybatisPlus介绍
  6. DW里面html鼠标点击特效,dw制作鼠标经过时图像放大鼠标离开图像回原形效果
  7. Linux 与 Windows 计算文件夹大小
  8. find命令结合exec和xargs使用的区别
  9. [Android] The wiki of EoeAndroid
  10. 【计算机视觉】数字图像处理(五)—— 图像的退化与复原
  11. 根据Excel记录生成Mysql和Hive建表语句
  12. 可视化作品欣赏 | 简单的设计往往就是最好的~~
  13. 散户通过a股量化数据接口实现自动化实盘交易主要方式有哪些?
  14. 大数据毕设选题 - 深度学习植物识别系统(cnn opencv python)
  15. 简析时间复杂度和空间复杂度
  16. 程序员的人生——应届生北漂的第三天
  17. 生物特征识别性能的不同衡量标准以及python源代码
  18. 【面试题】网易互娱(游戏)2021校园招聘在线笔试 - 服务端开发工程师[螺旋矩阵]
  19. X/Y/Z Modem、Kermit区别
  20. 何为助贷?助贷业务的盈利模式

热门文章

  1. 腾讯优图发布四大平台产品,持续开放视觉AI能力
  2. 达摩院2020十大科技趋势发布:云成IT技术创新中心
  3. 重磅!AWS任命张文翊女士为全球副总裁及大中华区执行董事!
  4. 5分钟,带你了解不同类型的云计算!
  5. 使用AWS CloudWatch 调优Lambda函数 | 技术头条
  6. react如何在父组件中调用子组件事件
  7. 一般二叉树的顺序存储Java_100-顺序存储二叉树思路图解
  8. openoffice转化太慢且不能多线程_专访橙光卿蓝蓝:多线程IP如何赢在起跑线?丨制鲜者IP作者...
  9. 使用html() undefined_SweetAlert2使用教程
  10. PHP与MySQL外文文献译文和原文_读懂外文文献的秘诀在这里丨49周新闻