Python的映射——字典

Python的映射——字典

字典的简介

字典作为Python的一种容器,是不需要讲究排序的,所以字典并不属于序列的一种。这字典里存在键(key)和值(value)。值是存储在键里,所以我们只要访问键就能得出值来。对于字典的基本操作有以下一种,最基本的还是字典的创建赋值, 访问,更新,删除。

1.字典的创建有三种方法,第一种是最常见的赋值,就是将一个字典直接赋值给变量,那么这个变量就是一个字典了。第二种的话就是使用dict()函数,可以直接将成对的序列转化为字典,这个方式会在下面详细讲解。第三种也是使用函数,不过这个函数并不怎么多见,方式是:{}.fromheys()。以上三种具体使用方法如下

#创建1
dict1 = {'name':'earth', 'port':80}
print dict1

-------------
>{'name':'earth', 'port':80}
#创建2
dict2 = dict((['x',1], ['y',2]))
print dict2
-------------
>{'y': 2, 'x': 1}

#创建3
#fromkeys接收相同的值传给前面的键
dict3 = {}.fromkeys(('x', 'y'), -1)
print dict3
-------------
>{'y': -1, 'x': -1}

访问字典也有两种情况是值得一说的,一种就是正常的访问字典中的一个元素,只要在[]中标出键就可以,而另外一种是在遍历字典的情况:遍历字典的时候默认的是遍历字典的键,而不是值,这一个比较有意思的地方,根本什么都不用说,直接把键给遍历了,如果这个时候需要键对应的值,只需要用得到的键调出值就可以了

dict1 = {'name':'earth', 'port':80}
for key in dict1:
    print 'key = %s, value = %s ' %(key, dict1[key])

-------------
>key = name, value = earth
>key = port, value = 80 

更新、删除跟序列的区别不是很大,序列中[]里填写下标,而在字典中,值需要把下标改成字典中的键就可以了。这也正好说明字典是没有顺序的容器

dict1 = {'name':'earth', 'port':80}
dict1['name'] = 'sunos5'
print dict1

-------------
>{'name': 'sunos5', 'port': 80}

dict1 = {'name':'earth', 'port':80}
del dict1['name'] #删除键为'name'的条目
dict1.clear()     #删除dict1中的所有条目
print dict1.pop('name') #删除'name'条目并返回键为'name'的值

内建函数

内建函数我们讲解2个函数和1个比较大小。

dict()

dict()函数被用来创建一个字典,且只接受一个参数,所以如果里面的参数大于1,请多用一个括号括起来。传入的参数有3种,一是空值,而是可迭代对象,三是传入一对字典(这个参数不需要限定为一个)

#传入可迭代对象时第一个是键,第二个是值
dict4 = dict((['x', 1], ['y', 2]))
print dict4

-------------
>{'y': 2, 'x': 1}

dict5 = dict(zip(('x', 'y'), (1, 2)))
print dict5

-------------
>{'y': 2, 'x': 1}

#传入字典
dict6 = dict(x=1, y=2)
print dict6

-------------
>{'y': 2, 'x': 1}

len()

len()函数太灵活了,在很多地方都可以见到它,数字,序列,字典中都有它的影子,当它用在字典里面的时候,它返回的是字典里面键值对的个数

dict1 = {'name':'earth', 'port':80}
print len(dict1)

-------------
>2

比较大小

其实字典比较大小的机会并不多,书上说着属于高级用法了,所以这里只记录比较的一般方法和顺序,不再距离说明:

先比:字典的长度,长度越长,字典越大。

再比: 字典的键,长度相同的情况下,键越大,字典越大。

最后比: 字典的值,在长度和键相同的情况下,比较值,值越大的字典越大。

内建方法

字典的内建方法这里不想多写了,《python基础教程》里面有对字典的内建函数有详细的介绍,有机会的话,想把上面的所有函数都举例说明一遍。

字典的键的两个特性

上面说了,字典中的值是保存在键里面的,键就像大学宿舍里的一张床铺,值就是床铺上住的人。因为要住人,床铺就有一定的要求,但是床上住什么人就没有要求了。对床铺(键)的具体要求有两个:1. 不允许一张床铺睡对个人;2.床铺必须是平躺着的—键必须是可哈希的。

1.不允许一个键对应多个值

每个键对应一个值,不允许对一个键进行多个值得绑定,如果有冲突,就取最后一次赋值

2.键必须是可哈希的

所有不可变的都是可哈希的,这里面也有两个需要注意的问题。数字做键,如果数字是相等的,则键是相同的;如果是元组做键,元组里面的元素也必须都是不可变的

时间: 2024-11-06 07:35:36

Python的映射——字典的相关文章

python基础之字典及字符

python基础之字典及字符串处理 本节内容 字典介绍及内置方法 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者

Python基础知识---字典

现在在实习期间,好久没用Python了,今天在做Java项目时用的HashMap让我联想到了Python中的字典,就写一些Python字典的知识吧,复习复习. 字典:  key --> value的映射关系,字典是无序性的,字典的key是不可变类型的,如int, str, float,tuple... 1.创建字典 (1)第一种方式创造字典,一次给全 >>> user = {'id': 1000, 'name': 'scd', 'password':'123'} >>&

Python<8>有关字典

Python中的字典是完全不同的东西,它们不是序列,没有顺序,只是一种映射.内部的元素以逗号分开,以大括 号包围.它们不是通过位置而是通过键来存储的,也具有可变性,可以就地的改变,增大或减小. 主要属性: <1>通过键而不是偏移量来读取 <2>任意对象的无序集合 <3>可变长.异构.任意嵌套 <4>属于可变映射 <5>对象引用表 常见操作 D={ }  空字典 'name' in D   成员存在测试 D.keys()     方法:键 D.va

python列表、字典、字符串常用操作

Python 列表.字典.字符串常用操作 1.字符串操作 字符串可以通过下标取值,但由于字符串是不可变变量,不可通过下标来修改值. str = 'lily terry mark' name[0]    #获取第1个字符串值 name[0:7]   #获取第1~7的字符串值 name[:7]   #缺省开始位置,默认从第1个元素开始取值 name[0:]   #缺省结束位置,默认到字符串末尾结束 字符串包含判断操作符:in .not in .is 'lily' in names 'lily' no

Python 基础之字典(dict)的用法

python dict字典字典是Python中唯一的内建映射类型,字典中的数据没有特定的顺序,可以通过特定的键(key)来存取数据.键可以是数字.元组或字符串,但不能是列表. 字典的常用方法:1.1 clear()方法1.2 copy()方法1.3 fromkeys()方法1.4 get()方法1.5 has_key()方法1.6 items.iteritems方法1.7 keys.iterkeys1.8 popitem()方法1.9 setdefault()方法1.10 update()方法1

python json模块 字典 输出中文

json.dumps({'text':"中文"},ensure_ascii=False,indent=2) python json模块 字典得到字符串,输出中文

python 元组和字典中元素作为函数调用参数传递

模式1.  def test1(*args): test3(*args) def test2(**kargs): test3(**kargs) def test3(a, b): print(a,b) test1(1,2) test2(a=1,b=2) 模式2.  def test4(a= ()): test6(*a) def test5(b = {}): test6(**b) def test6(a, b): print(a,b) test4((1, 2)) test5({'a':1,'b':2

Python中的字典详解

Python中的字典是python的一种数据结构,它的本质是key和value以及其对应关系的一种集合,一个key可以对应一个多个value.合理的使用字典能给我们编程带来很大的方便. -----python中的数据类型 -----python中的字符串操作 python3.0以上,print函数应为print(),不存在dict.iteritems()这个函数. 在python中写中文注释会报错,这时只要在头部加上# coding=gbk即可 #字典的添加.删除.修改操作dict = {"a&

python系列(四)python元组与字典

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 本博文目录: 一.元组 | 二.字典 | 三.字典的使用方法 前言:列表非常适合用于存储在程序运行期间可能变化的数据集.列表是可以修改的,这对处理网站的用户列表或游戏中的角色列表至关重要.然而,有时候你需要创建一些列不可修改的元素,元组就可以满足你这样的需求.Python将不能修改的值称为不可变的,而不可变的列表就被称为元组. 正文部分: