一,字典

1. 字典在其它编程语言中又称为关联数组或散列表;

2. 特性:

a. 通过键值实现元素存取;

b. 无序集合;

c. 可变类型容器;

d. 长度可变;

e. 支持异构;

f. 支持嵌套;

3. 语法

a. d1 = {key1:value1, key2:value2, ...} ;

b. d1 = {}    //表示空字典;

例如:In [435]: d1 = {'x':32,'y':[1,2,3]}

In [440]: d1['y'][2:]

Out[440]: [3]

In [441]: d1['y'][1:]

Out[441]: [2, 3]

4. 常用操作In [448]: d1.[table]

d1.clear       d1.get         d1.iteritems   d1.keys        d1.setdefault  d1.viewitems

d1.copy        d1.has_key     d1.iterkeys    d1.pop         d1.update      d1.viewkeys

d1.fromkeys    d1.items       d1.itervalues  d1.popitem

d1.values      d1.viewvalues

二,字典的常用操作示例

1. len取得元素个数

例如:In [445]: len(d1)

Out[445]: 2

In [446]: print d1

{'y': [1, 2, 3], 'x': 504}

In [447]: d1

Out[447]: {'x': 504, 'y': [1, 2, 3]}

2.字典的复制

例如:In [449]: d2 = d1.copy()

In [450]: d2

Out[450]: {'x': 504, 'y': [1, 2, 3]}

In [451]: id(d1)

Out[451]: 49109552

In [452]: id(d2)

Out[452]: 48033392

In [453]: d2 = d1

In [454]: id(d2)

Out[454]: 49109552

In [455]: id(d1)

Out[455]: 49109552

3. get取得对应键的值

例如:In [456]: d1

Out[456]: {'x': 504, 'y': [1, 2, 3]}

In [457]: d1.get('x')

Out[457]: 504

In [458]: d1.get('y')

Out[458]: [1, 2, 3]

In [459]: d1.get('z')

In [461]: d1['x']

Out[461]: 504

In [462]: d1['z']

---------------------------------------------------------------------------

KeyError                                  Traceback

(most recent call last)

in ()

----> 1 d1['z']

KeyError: 'z'

4.判断元素

例如:In [463]: d1.has_key('x')

Out[463]: True

In [464]: d1.has_key('z')

Out[464]: False

In [465]: d1.has_key('')

Out[465]: False

5. 把字典键值都拆成元组列表

例如:In [466]: d1.items()

Out[466]: [('y', [1, 2, 3]), ('x', 504)]

6.变量解包

例如:In [469]: t1,t2 = d1.items()

In [471]: print t1

('y', [1, 2, 3])

In [472]: print t2

('x', 504)

In [474]: t1,t2,t3 = d1.items()

---------------------------------------------------------------------------

ValueError                                Traceback (most

recent call last)

in ()

----> 1 t1,t2,t3 = d1.items()

ValueError: need more than 2 values to unpack

7.键和键值

例如:In [477]: m1,m2 = {'x':1,'y':2}

In [478]: print m1

y

In [479]: print m2

x

In [480]: d1

Out[480]: {'x': 504, 'y': [1, 2, 3]}

In [481]: d1.keys()

Out[481]: ['y', 'x']

In [482]: d1.values()

Out[482]: [[1, 2, 3], 504]

8.popitem随机弹出键值映射

例如:In [486]: d1.pop('y')

Out[486]: [1, 2, 3]

In [487]: d1

Out[487]: {'x': 504}

In [488]: d2 = {'x':1,'y':2,'z':3}

In [489]: d2.popitem()

Out[489]: ('y', 2)

In [490]: d2

Out[490]: {'x': 1, 'z': 3}

9.update合并覆盖键值

例如:In [495]: d1

Out[495]: {'x': 504}

In [496]: d1 = {'x':1,'y':2}

In [497]: d2 = {'m':21,'n':76,'y':44}

In [498]: d1.update(d2)

In [499]: print d1

{'y': 44, 'x': 1, 'm': 21, 'n': 76}

10.iteritems返回迭代器对象

用于遍历对象中的每一个元素。

例如:In [507]: d1

Out[507]: {'m': 21, 'n': 76, 'x': 1, 'y': 44}

In [500]: help(dict.iteritems)

In [501]: d1.iteritems()

Out[501]:

0x2f03578>                  //返回迭代器的地址

In [512]: i1 = d1.iteritems()

In [513]: i1.next()

Out[513]: ('y', 44)

In [514]: i1.next()

Out[514]: ('x', 1)

In [515]: i1.next()

Out[515]: ('m', 21)

In [516]: i1.next()

Out[516]: ('n', 76)

In [517]: i1.next()

---------------------------------------------------------------------------

StopIteration                             Traceback (most

recent call last)

in ()

----> 1 i1.next()

StopIteration:

11.iterkeys迭代键

例如:In [519]: i2 = d1.iterkeys()

In [520]: i2

Out[520]:

In [521]: i2.next()

Out[521]: 'y'

In [522]: i2.next()

Out[522]: 'x'

In [523]: i2.next()

Out[523]: 'm'

In [524]: i2.next()

Out[524]: 'n'

In [525]: i2.next()

---------------------------------------------------------------------------

StopIteration                             Traceback (most

recent call last)

in ()

----> 1 i2.next()

StopIteration:

12.itemvalues迭代键值

例如:In [526]: i3 = d1.itervalues()

In [527]: i3.next()

Out[527]: 44

In [528]: i3.next()

Out[528]: 1

In [529]: i3.next()

Out[529]: 21

In [530]: i3.next()

Out[530]: 76

In [531]: i3.next()

---------------------------------------------------------------------------

StopIteration                             Traceback (most

recent call last)

in ()

----> 1 i3.next()

StopIteration:

13.viewitems显示键值对拆分的元组

例如:In [536]: d1

Out[536]: {'m': 21, 'n': 76, 'x': 1, 'y': 44}

In [538]: d1.viewitems()

Out[538]: dict_items([('y', 44), ('x', 1), ('m', 21), ('n', 76)])

14.viewitems显示字典的构造方式

例如:In [533]: d2 = dict(name='jerry',gender='m',age=42)

In [534]: d2.viewitems()

Out[534]: dict_items([('gender', 'm'), ('age', 42), ('name',

'jerry')])

In [535]: d2

Out[535]: {'age': 42, 'gender': 'm', 'name': 'jerry'}

15.viewkeys显示键

例如:In [541]: d2.viewkeys()

Out[541]: dict_keys(['gender', 'age', 'name'])

16.viewvalues显示键值

例如:In [543]: d2.viewvalues()

Out[543]: dict_values(['m', 42, 'jerry'])

17.使用zip返回序列

例如:In [544]: zip('xyz','123')

Out[544]: [('x', '1'), ('y', '2'), ('z', '3')]

In [545]: zip('xyz','1234')

Out[545]: [('x', '1'), ('y', '2'), ('z', '3')]

In [546]: zip('xyzm','123')

Out[546]: [('x', '1'), ('y', '2'), ('z', '3')]

In [547]: zip('xyz','123','abc')

Out[547]: [('x', '1', 'a'), ('y', '2', 'b'), ('z', '3', 'c')]

18.使用zip构造字典

例如:In [549]: dict(zip('xyz','123'))

Out[549]: {'x': '1', 'y': '2', 'z': '3'}

python字典数据的特点_Python核心数据类型之字典15相关推荐

  1. python支持字符类型吗_python核心数据类型 -- 字符串类型

    说明 字符串字面量:把文本放入单引号/双引号/三引号中. 在python2中,str无法支持国际字符集,需要使用str = u"hello world" python2 使用uni ...

  2. 企业做图表,不会字典数据抓取,告别手动生成字典绘图

    企业做图表,不会字典数据抓取,告别手动生成字典绘图 import csv with open('GDP_MAP.csv','r') as csvfile:reader=csv.reader(csvfi ...

  3. python中字典数据的特点_Python数据类型(字典)

    Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在 ...

  4. python核心数据类型_Python核心数据类型-列表

    Python核心数据类型-列表 关于列表的重要属性 列表是任意对象的有序集合,列表中可以包含任何种类的对象,数字 字符串 或者是其他列表 列表可以通过偏移来读取其中的元素,也可以通过分片读取列表中的某 ...

  5. python核心数据类型_Python核心数据类型—元组

    Python核心数据类型-元组 Python元组与列表类似,但是元组属于不可变类型 创建元组 a = () #创建空元组 a = (1, 2, 3) #创建一个元组 a = [1, 2, 3] b = ...

  6. python的核心数据类型_Python核心数据类型-集合

    Python核心数据类型-集合 特点 确定性 互异性 无序性 len() ##返回集合的长度 #判断元素是否在集合中 In [80]: x = set([1,2,3,4]) In [81]: 1 in ...

  7. python编程字典数据库_python基础数据类型之字典、集合

    哈啰!大家好,今天是初五了,牛年接财神的好日子,懂得都懂.祝@所有人2021年,事事顺利,牛气冲天,福利满满,财运亨通,步步高升,学业进步! 那么,这次介绍的是鼎鼎大名的字典,其以其操作的灵活性.操作 ...

  8. c++中判断某个值在字典的value中_Python核心知识系列:字典

    1 定义 字典是一种映射对象类型,由键值对构成的一个可变容器.字典中的每个键值对内用冒号 ( : ) 分隔,键值对间用逗号 ( , ) 分隔,所有键值对包括在{}中.字典的键必须是唯一的,只有可散列的 ...

  9. python中怎样向字典中添加值_python中向一个字典中加值

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 开发准备cas 的 python sdk 包含了用于访问和操作 cas 的所有 ...

最新文章

  1. boost::gil模块实现打包像素格式的测试程序
  2. 快速判断数组中每个对象同一属性值是否相同
  3. LeetCode 135. 分发糖果(DP)
  4. C++ 虚函数,纯虚函数,抽象类整理
  5. jquery 常见选择器以及一些方法
  6. XML_CPP_资料_libXml2_01
  7. Halcon深度学习超参数
  8. 教你如何用R进行数据挖掘
  9. 九月手机无新事:头部品牌没创新,二三线品牌静悄悄
  10. 【微信登录】APP/网站应用的微信扫码登录
  11. 一树梨花压海棠的典故
  12. Axure制作倒计时
  13. 源码阅读的意义:技术功底、hold住全场、设计能力、职场竞争
  14. 使用eclipse编写并运行你的第一个Android程序
  15. 教你如何赚你的第一桶金 - 2048(包括源代码)
  16. 英语四六级详细报名步骤来啦!
  17. linux 如何做共享磁盘阵列,在Linux上玩转磁盘阵列分享
  18. 计算向量相似度 ---余弦相似度
  19. 经济机器动作的原理,马太效应,刺猬计划,破窗理论
  20. 第2章 Python 分支结构

热门文章

  1. POJ 1664 放苹果(递归或DP)
  2. 使用windbg通过vtable找到优化后的this指针
  3. 技术文章系列汇总(持续更新中)并附博客上树状列表源代码
  4. 企业传播的云计算时代还有多远?―21世纪广告―文章摘要―龙源期刊网
  5. python遍历目录树 除文件_python遍历目录树删除指定后缀的文件
  6. Ubuntu18.04开机自启动脚本(systemctl方式)
  7. Qt之音频播放(二)
  8. Mac删除Windows10后空间丢失解决
  9. C++中for循环的5种语法
  10. 从零学React Native之01创建第一个程序