Python核心数据类型之字典15

一,字典

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)
<ipython-input-462-f70e6eeb835b> in <module>()
----> 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)
<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
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]: <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]: 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)
<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‘}
时间: 2024-10-27 09:28:28

Python核心数据类型之字典15的相关文章

python核心数据类型笔记

在这里,首先声明,python核心数据类型在这里就认为是python内置的数据类型 在python中.序列类型包含字符串,列表和元组 字符串: 字符串字面量:将文本引入单引号,双引号,三引号 默认的编码类型是字符编码(8bit) 在python2中,如果要使用unicode编码(16bit),需在定义字符串的引号前面加u 在python中,有文档字符串的概念,所谓文档字符串就是在模块,类或则是函数中的第一条语句是一个字符的话(用引号定义),那么该字符就是文档字符串,可以使用__doc__属性引用

python基础数据类型之字典+集合

一.数据类型之字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 总结:1.字

python基础数据类型之字典dict和集合set及其他(for,enumerate,range)。

2.6字典dict. 2.6.1 字典的初识 1. 列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢. 2. 列表只能按照顺序存储,数据与数据之间关联性不强. 所以针对于上的缺点,说咱们需要引入另一种容器型的数据类型,解决上面的问题,这就需要dict字典. 数据类型可以按照多种角度进行分类,就跟咱们人一样,人按照地域可以划分分为亚洲人,欧洲人,美洲人等,但是按照肤色又可以分为白种人,黄种人,黑种人,等等,数据类型可以按照不同的角度进行分类,先给大家按照可变与不可变的数据类型的

python基础数据类型一(字典)

字典 列表可以存储大量的数据类型,但是只能按照顺序存储,数据与数据之间关联性不强. 所以咱们需要引入一种容器型的数据类型,解决上面的问题,这就需要dict字典. 字典(dict)是python中唯?的?个映射类型.他是以{ }括起来的键值对组成. 在dict中key是 唯?的.在保存的时候, 根据key来计算出?个内存地址. 然后将key-value保存在这个地址中. 这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key必须是可hash的 可以改变的都是不

Python 核心数据类型

1.Python中一切皆对象 2.Python中不需要申明对象类型,对象的类型由运行的表达式决定 3.创建了对象意味着绑定了对象的操作到此对象,也就是在固有的对象上只能调用该对象特有的操作.比如只能将String操作用在String对象上,list操作用在list对象上. 4.Python内置数据类型: (1)Number •  Integer and floating-point objects • Complex number objects •  Decimal: fixed-precis

python学习之核心数据类型

python核心数据类型 对象类型 例子 数字 1234,-345 字符串 'spam' 列表 [1,3,'ds'] 元组 (1,'spam',6) 字典 {'name':'lili','age':12} 文件 myfile =open('test.text',''w) 集合 set('abc') 其他类型 None 布尔型 编程单元类型 函数,模块,类 数字 加,减,乘,除,就不用说了,+ - * / ** 表示乘方  2**3  表示  2的三次方 结果是8 >>>2**100 12

python基础&mdash;&mdash;列表、字典

Python核心数据类型--列表 列表是一个任意类型的对象的位置相关的有序集合,它没有固定的大小.大小可变的,通过偏移量进行赋值以及其他各种列表的方法进行调用,能够修改列表.其他更多的功能可以查阅python的标准手册,或者运行help(list)或dir(list)查看list方法的完整清单. 任意对象的有序集合:从功能上看,列表是收集其他对象的地方,同时列表所包含的每一项都保持了从左到右的位置顺序. 通过偏移读取:可以通过列表对象的偏移对其进行索引,从而读取对象的某一部分内容.由于列表的每一

python学习笔记03:python的核心数据类型

从根本上讲,Python是一种面向对象的语言.它的类模块支持多态,操作符重载和多重继承等高级概念,并且以Python特有的简洁的语法和类型,OOP十分易于使用.Python的语法简单,容易上手. Python程序可以分解成模块.语句.表达式以及对象.1.程序由模块构成.2.模块包含语句.3.语句包含表达式.4.表达式建立并处理对象. Python的核心数据类型如下: 对象类型                   例子 常量/创建                     数字 1234, 3.14

python核心编程--第八章 8.15 练习

#!/usr/bin/python # -*- coding: utf-8 -*- # 8–2. 循环. 编写一个程序, 让用户输入三个数字: (f)rom, (t)o, 和 (i)ncrement . # 以 i为步长, 从 f 计数到 t , 包括 f 和 t . 例如, 如果输入的是 f == 2, # t == 26, i == 4 , 程序将输出 2, 6, 10, 14, 18, 22, 26. f = int(raw_input("Please input from: "