Python基础——核心数据类型_映射_字典
来源:互联网 发布:买家淘宝等级怎么升 编辑:程序博客网 时间:2024/06/05 05:40
- 创建
- 字典方法
- 其他
- del删除
- 字典的格式化字符串
- 排序
- 迭代
映射是通过名字来引用值,而不是像序列那样通过索引。
字典是python唯一的内建映射,键可以为任意不可变类型,如字符串或者元组。字典中的键是唯一的,值可以不唯一。
创建
常量表达式
student = {'Alice':30, 'Bob':22}
dict():
将其他映射转换成字典
items = [("Alice", 30), ('Bob', 20)]d = dict(items)
或者通过关键字参数创建字典
d = dict(Alice=30, Bob =20) #键必须为字符串,并且哈,这里的键虽然是字符串,但是不需要引号
所有值相同的字典
>>>dict.fromkeys(['a', 'b'], 0){'a':0, 'b':0}
value为列表的字典:
from collections import defaultdict d = defaultdict(list)
字典方法
len:len(d)
索引: d[key]
通过键索引一个字典往往是python中搜索的最快方法。 d[key] = value
:特殊之处在于即使key不存在,这个操作会新增键为key值为value的项。不同于列表。
d.has_key(key):相当于表达式key in d。
d.get(key, default):读取不存在的键会出错,get方法可以在读取不存在的键时返回默认值。
d.items():将字典以列表形式返回。
d.iteritems():返回迭代器对象而非列表。
d.keys():将字典中的键以列表形式返回。
d.iterkeys():返回针对键的迭代器。
d.values():将字典中的值以列表的形式返回,返回的列表中可以包含重复的元素(所以列表长度与原字典一样)。
d.pop(key):将key对应的键值对从字典中移除,并返回key对应的值。
d.popitem():类似于list的pop方法,但是pop默认弹出最后一个元素,而字典没有顺序,也就没有最后一个元素一说,popitem从字典中随机选择一个项弹出。
d.update(d2):用字典d2更新字典d,也就是把d2中的项添加到d中,如果有相同的键则会覆盖。update可以使用和dict函数同样的方式进行调用,即和映射、键值对队列、关键字参数一起调用。
d.clear():将字典d清空,修改了原字典(原地操作),无返回值。
d2 = d.copy():此方法对d中的元素进行拷贝,这样生成的d2和d并不引用同一对象,但是由于元素本身是引用,如果引用的对象是原处可修改的,那么一个变量的修改会影响另一个变量。
>>>d = {"name": "Mihn", 'grads':[1,2,3]}>>>d2 = d.copy()#d2的name引用对象"Mihn", d2的grads引用对象[1,2,3]>>>d is d2False>>>d2['name'] = 'Alice'#由于字符串是不可变的,此次赋值结果是d2的name引用对象'Alice'>>>d2['grads'][2] = -10#由于列表是原处可修改的,此次赋值结果是d2的grads引用对象被原处修改。而d的grads也引用同一对象,那么d也被修改>>>print d2{"name" = "Alice", 'grads'=[1,2,-10]}>>>print d{"name" = "Mihn", 'grads'=[1,2,-10]}
可以使用深复制得到原来对象的副本,这样两个对象的修改不会影响对方:
from copy import deepcopyd = {"name" = "Mihn", 'grads'=[1,2,3]}d2 = deepcopy(d)
成员资格:key in d
字典d中是否有键为key的项,注意查的是键,不是值。
其他
del删除
del d[key]
删除键为key的项
字典的格式化字符串
“%(key)s” % d :这里的key为字符串时不用加引号!
>>> x ={'name':1, 'food':2, 'xx':3}>>> print '%(name)s' % x1
排序
虽然字典本身是没有任何顺序的,但是可以内建函数sorted()对字典进行排序。
按字典的key排序:sorted(d)
返回排好序的key列表。
按字典的value排序:
d = sorted(s.iteritems(),key=lambda t:t[1],reverse=False)#false表示由小到大,true表示由大到小
迭代
for key in d: expression
- Python基础——核心数据类型_映射_字典
- Python基础——核心数据类型_序列_字符串
- Python基础——核心数据类型_序列_列表
- Python基础——核心数据类型_数字
- Python基础——核心数据类型_集合
- Python基础——核心数据类型_文件
- Python基础——核心数据类型_序列_元组
- python基础_数据类型
- python基础学习_字符串,列表,字典
- python基础学习_字典拾遗
- Python核心数据类型——列表与字典
- OC基础_字典
- Java基础_数据类型
- Python基础——语句_赋值
- Android核心基础_广播_服务
- python字典——映射
- Python语言基础(二)_数据类型和变量
- Python基础一_数据类型与字符串编码
- Python基础——核心数据类型_序列_元组
- Netty高性能大容量Socket并发 二
- 安装myeclipse及git插件
- 就是爱测试
- rsync+sersync安装配置笔记
- Python基础——核心数据类型_映射_字典
- asp.net线程批量导入数据时通过ajax获取执行状态
- strlen和sizeof的区别
- Python基础——核心数据类型_集合
- webUI框架miniUI,easyUI,extJS,Bootstrap简介及简单部署
- C#注意事项汇总(基本语法等)
- Python基础——核心数据类型_文件
- Netty高性能大容量Socket并发 一
- win下eclipse一键打包cocos2dx的apk 命令