《转》python学习(9)字典
转自 http://www.cnblogs.com/BeginMan/p/3156960.html
一、映射类型
我理解中的映射类型是:键值对的关系,键(key)映射值(value),且它们是一对多的关系。
字典是Python唯一的映射类型。
扩展1:哈希表
一种数据结构,值是根据相关的键进行数据存储的,形成"键-值对"(key-value pairs),哈希表中的值是没有顺序的。
扩展2:映射类型与序列类型的区别
1):访问方式不同,序列类型用数字类型的键,而映射类型可以用其他对象类型做键(一般式字符串)
>>> lis = ['a','b','c']
>>> lis[2]
'c'
>>> dic = {'name':'a','father':'b','mother':'c'}
>>> dic['mother']
'c'
2):存储类型不同,映射类型的键,直接或间接地与值相关。
3):序列类型,有序之列;映射类型则无序之列
二、字典
1、工厂方法dict():
>>> tu=(['a','b'],['xx','yy'])
>>> tu
(['a', 'b'], ['xx', 'yy'])
>>> fdict = dict(tu)
>>> fdict
{'a': 'b', 'xx': 'yy'}
2、访问形式:
>>> dic
{'father': 'b', 'name': 'a', 'mother': 'c'}
>>> for obj in dic:
print obj father
name
mother
>>> for obj in dic.keys():
print obj father
name
mother
>>> for obj in dic.values():
print obj b
a
c
>>> for obj in dic.items():
print obj ('father', 'b')
('name', 'a')
('mother', 'c')
>>>
3、has_key()、in、not in来检查是否有某个键,has_key()已慢慢弃用了。
4、有则更新,无则添
5、删除
del dic['name'] #删除元素
del dic #删除整个
6、操作符
[]、和 in、not in
>>> if 'name' in dic:
print dic['name']
a
7、相关函数
dict():创建字典
len():返回键值对数目
hash(obj):返回obj的哈希值
8、内建方法
dict.clear():删除字典中所有元素
dict.copy():浅copy
dict.formkeys():创建字典
dict.get(key,default=None):返回对应键值
dict.has_key():键是否存在
dict.items():返回字典中键值对元祖的列表
dict.keys():键的列表dict.values():值的列表
......
>>> dic.keys()
['father', 'name', 'mother']
>>> dic.values()
['b', 'a', 'c']
>>> dic.get('name')
'a'
三、注意
1、不允许一个键对应多个值,一个键只能对应一项
2、当键发生冲突时,取最后一个。
3、Python不会检查键的冲突,也不会因为键的冲突而产生错误,如果检查每个键是否冲突势必会占用很多内存。
>>> dic={'a':'ss','a':"xxxx"}
>>> dic
{'a': 'xxxx'}
4、键必须是可哈希的。
所有不可变类型都是可哈希的,不可变类型如(列表、字典)则不能。
不可变类型:string,integer,tuple、
可变类型:list,dict
5、值相同的数字表示相同的键,如1和1.0的哈希值是相同的,因此它们是相同的键。
>>> dic={1:'a',1.0:'b'}
>>> dic
{1: 'b'}
《转》python学习(9)字典的更多相关文章
- Python学习笔记(字典)
今天学习一个python中的基本类型--字典(dictionary) 字典这种数据结构有点像我们平常用的通讯录,有一个名字和这个名字对应的信息.在字典中,名字叫做“键”,对应的内容信息叫做“值”.字典 ...
- python学习09——字典(3)
今天写了一道python字典题目,用了上次字典(2)中的方法,代码如下: json = {', 'IP':'10.0.0.1'} def find_value(themap, word): if wo ...
- Python学习07——字典(2)
笨办法学Python第40节,上次用的第三版的书,这次是第四版的书. 这一节的代码如下: cities = {'CA':'San Francisco', 'MI':'Detroit', 'FL':'J ...
- python学习05——字典
笨办法学python第39节 这节主要讲解的是字典,首先字典和列表的两个区别是: 1. 列表中可以通过数字找到列表中的元素,是数字作为索引的:字典中可以通过任何东西找到想要的元素,即字典可以将一个物件 ...
- Python学习笔记-字典
字典是python中唯一内建的映射类型. 创建字典phonebook = {'Alice':'2341','Beth':'9102'} 可以使用dict通过其他映射或者键值对的序列建立字典.关键值参数 ...
- Python学习之字典详解
在元组和列表中,都是通过编号进行元素的访问,但有的时候我们按名字进行数据甚至数据结构的访问,在c++中有map的概念,也就是映射,在python中也提供了内置的映射类型--字典.映射其实就是一组key ...
- python学习:字典排序
按字典值排序 按照字典value排序,类似sort -k 命令 import operator x= {1:2,3:4,4:3,2:1,0:0} sorted_x = sorted(x.ite ...
- python学习之字典(Dictionary)练习
Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型 字典中分为键值对 , key 类型需要时被哈希. value 类型可以是 字符串.数字.元组等其他容器模 ...
- python 学习分享-字典篇
python字典(Dictionary) dict是无序的 key必须是唯一切不可变的 a={'key1':'value1','key2':'value2'} 字典的增删改查 a['key3']='v ...
- python学习10字典
'''''''''字典(Dict)是python语言的一个最大的特征1.定义:是可变的无序集合,以键值对为基本元素,可以存储各种数据类型2.表示:{} 列表:[] 元组 () 字符串 ‘’ “” ‘‘ ...
随机推荐
- 风雪之隅(Laruence PHP开发组成员, Zend兼职顾问, Yaf, Yar, Yac, Opcache等项目作者、维护者.)
http://www.laruence.com/?from=inf&wvr=5&loc=infblog
- 在Window下安装解压版的mysql 5.7.11
今天由于要在windows下学习Kettle,因此在Windows下安装了mysql 5.7.11,本来是没什么大问题的,但是在启动服务时还是出了点问题,服务老是启动不了: (一)解压到安装路径: ...
- u-boot bootz 加载kernel 流程分析
u-boot 加载 kernel 的流程分析. image重要结构体头文件 // include/image.h * * Legacy and FIT format headers used by d ...
- JavaScrip——练习(做悬浮框进一步:悬浮窗后缀悬浮窗【感觉这种方法比较麻烦】)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- iOS边练边学--(Quartz2D)图片添加水印
一.给图片添加水印的基本步骤 加载图片 手动创建位图上下文 绘制原生的图片 给原生的图片添加文字 生成一张图片给我们,从上下文中获取图片 关闭上下文 二.注意:位图上下文的获取方式跟layer上下文不 ...
- vim打开后乱码,xshell打开后也是乱码,设置自动出现行号
Xshell对于嵌入式开发来说,是个非常不错的工具.但或许都有过被中文显示为乱码的问题感觉有点不爽.解决方法其实很简单的,即把xshell编码方式改成UTF-8即可. [文件]–>[打开]–&g ...
- 实现对div的显示隐藏
jQuery对div的显示和隐藏: 显示: 复制代码 代码如下:$("#id").show() 隐藏: 复制代码 代码如下: $("#id").show() j ...
- 关于Unity中UI中的RawImage节点以及制作地图滚动效果
一.贴图的Texture Type属性类型 Texture:会把贴图的大小转换为最相近的2的n次方,比如400X1369会转换为512X1024. Sprite 2D:是贴图的原始大小. 二.RawI ...
- 第三百一十四节,Django框架,自定义分页
第三百一十四节,Django框架,自定义分页 自定义分页模块 #!/usr/bin/env python #coding:utf-8 from django.utils.safestring impo ...
- bootstrap -- css -- 按钮
本文中提到的按钮样式,适用于:<a>, <button>, 或 <input> 元素上 但最好在 <button> 元素上使用按钮 class,避免跨浏 ...