一,字典

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]: 2In [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]: 49109552In [452]: id(d2)
Out[452]: 48033392In [453]: d2 = d1In [454]: id(d2)
Out[454]: 49109552In [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]: 504In [458]: d1.get('y')
Out[458]: [1, 2, 3]In [459]: d1.get('z')In [461]: d1['x']
Out[461]: 504In [462]: d1['z']
---------------------------------------------------------------------------
KeyError                                  Traceback
(most recent call last)
<ipython-input-462-f70e6eeb835b> in <module>()
----> 1 d1['z']KeyError: 'z'

4.判断元素

例如:

In [463]: d1.has_key('x')
Out[463]: TrueIn [464]: d1.has_key('z')
Out[464]: FalseIn [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)
<ipython-input-474-202a1b3eb745> in <module>()
----> 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
yIn [479]: print m2
xIn [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]: <dictionary-itemiterator at
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)
<ipython-input-517-be7912f76fe0> in <module>()
----> 1 i1.next()StopIteration:

11.iterkeys迭代键

例如:

In [519]: i2 = d1.iterkeys()In [520]: i2
Out[520]: <dictionary-keyiterator at 0x2f03cb0>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)
<ipython-input-525-26e3ebe37329> in <module>()
----> 1 i2.next()StopIteration:

12.itemvalues迭代键值

例如:

In [526]: i3 = d1.itervalues()In [527]: i3.next()
Out[527]: 44In [528]: i3.next()
Out[528]: 1In [529]: i3.next()
Out[529]: 21In [530]: i3.next()
Out[530]: 76In [531]: i3.next()
---------------------------------------------------------------------------
StopIteration                             Traceback (most
recent call last)
<ipython-input-531-a0267d328718> in <module>()
----> 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'}

转载于:https://blog.51cto.com/zkhylt/1706444

Python核心数据类型之字典15相关推荐

  1. python字典数据的特点_Python核心数据类型之字典15

    一,字典 1. 字典在其它编程语言中又称为关联数组或散列表: 2. 特性: a. 通过键值实现元素存取: b. 无序集合: c. 可变类型容器: d. 长度可变: e. 支持异构: f. 支持嵌套: ...

  2. 列举python的5个数据类型_python公开课|新公布的5个python核心数据类型,这些细节你难道还不不知道吗...

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注py ...

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

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

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

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

  5. python判断数据类型是不是字典的方法

    这篇文章主要介绍python判断数据类型是不是字典的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! python的数据类型有:数字(int).浮点(float).字符串(s ...

  6. python数据类型-Python核心数据类型概览

    在Python中,我们使用一些东西在做事情,东西就是我们要操作的对象,事情就是这个对象能做什么,这是我们本节所要讨论的内容.在Python中数据以对象的形式出现,它包含了数值以及相关操作的集合,Pyt ...

  7. 4、Python基本数据类型之字典,集合

    一.字典 在python中定义一个字典的语法为: 1 dic = {1:"张三",2:"李四"} 字典的每一个元素由key:value组成,这类似于一个学号对应 ...

  8. Python经典数据类型:字典

    选择题 以下关于Python字典的描述中,错误的是: A.在定义字典时,键和值用冒号连接 B.字典通过整数索引来查找其中的元素 C.字典的键值对之间没有顺序且不能重复 D.字典用中括号中包含键名的格式 ...

  9. python核心数据类型——数值、字符串和列表的基本操作

    数值.字符串和列表的基本操作举例 **1. 列表 list** * --------- ① 下标索引及长度测量 * --------- ② 追加新列表以及append( )的应用 * -------- ...

最新文章

  1. 平衡二叉树-FHQ Treap(无旋平衡树)c/c++代码实现
  2. Linux 文件权限详解 含义和修改和安全
  3. java集合——集合框架
  4. 服务器角色与数据库角色
  5. Android Jni 例程
  6. 计算机学院志愿服务活动 2013/12/23 爱心6+1,计算机学院赴淮南南站开展志愿服务活动...
  7. 190125每日一句
  8. 几种常用的电机控制法
  9. linux tftp 下载命令,Linux tftp命令
  10. 书摘—松下幸之助全传
  11. 在别人的句子里出现曙光
  12. 光谱分析有哪些最新发表的毕业论文呢?
  13. java 获取今天或者某一天是星期几/周几以及几号的方法
  14. 读书笔记-精准努力-专注专注专注
  15. 中兴服务器 raid,超微X9DRH-7F 组装存储服务器RAID5实测
  16. 配置完dcom需要重启计算机,DCOM电脑自动重启(win7系统一直反复重启)
  17. np视频总结1—eigrp
  18. typora字体修改
  19. root android oppo,OPPO R9S怎么ROOT oppor9s获取root权限的两种方法
  20. matlab cell 颜色,MATLAB 的 cell 大法(单元格数组)

热门文章

  1. 吴裕雄 python 神经网络——TensorFlow训练神经网络:不使用隐藏层
  2. django入门与实践 3-1 环境搭建
  3. JavaScript立即执行函数学习
  4. 其实,这仅仅是个开始
  5. Mifare Ultra Light 非接触式IC卡发卡总结
  6. linux 对象管理器,Linux多安全策略和动态安全策略框架模块详细分析之函数实现机制中文件对象管理器分析(3)...
  7. FloatingActionButton完美显示
  8. 《深入浅出数据分析》第十章第十一章
  9. Java 阿里巴巴数据源_阿里P7教你如何使用 Spring 配置动态数据源实现读写分离
  10. python开发pandas_二、Python开发---33、pandas(1)