haibaraxx的个人博客分享 http://blog.sciencenet.cn/u/haibaraxx

博文

Python:字典和字典方法

已有 7898 次阅读 2017-6-14 21:07 |个人分类:Python|系统分类:科研笔记| 字典和字典方法

1 什么是字典(Dictionary)?

字典是Python中唯一内建的映射类型,可以建立对象之间的映射关系。字典的每一个元素可以形成key-value对(键-值对)。

key - 键,可以是数字、字符串、元组等不可变的类型,因而不能是列表!

value - 值,无序的,仅和key有关。


2 创建字典

2.1 {}直接创建

>>> aDict = {'a': 0.15, 'b': 0.3, 'c': 0.45}

# 创建一个空字典

>>> Dict0 = {}

2.2 dict()函数


2.3 {}.fromkeys函数

用于生成值相同的字典。

2.4 dict()与zip()函数结合使用

dict(zip(keys, values))


2.5 脚本示例


3 字典的基本操作

键值查找,更新,添加,成员判断,删除字典成员

注:序列通过索引来确定对象,而字典通过来确定对象。

>>> aDict = {'a': 1, 'b': 2, 'c': {'c': 3, 'd': 4}}

>>> aDict['c']['d']

>>> 4


5 字典作为可变长关键字参数

- 字典可以作为函数的特殊类型参数,如可变长关键字参数。



5 字典的内建函数

dict() - 创建字典

len() - 键值对个数

hash() - 哈希函数,返回对象的哈希值。哈希值是哈希算法生成的一段二进制值,不同的数据具有不同的哈希值。可变的对象是不可哈希的,而不可变的对象是可哈希的,具有哈希值。



6 字典方法


#-----------------------------------------------------------------------

提取字典的键和值 - keys(), values(), get(), setdefault()

#-----------------------------------------------------------------------

keys() - 返回一个列表,元素为字典中所有的key。

Dict1.keys()

values() - 返回一个列表,元素为字典中所有的value。

Dict1.values()

get() - 返回指定键的,如果键不在字典中,默认无返回值。

Dict1.get(key1, defaults=None)

setdefalut() - 同get()。

Dict1.setdefault(key1, defaults=None)

key1 — 需要被检索的键。强制参数。

注:上例中,‘d’不是aDict的键,若此时运行aDict['d'],程序会因出现异常而终止;而get()则不返回值,且不出现异常,不会终止程序,因而推荐使用get()方法。

#--------------------------------------------------------------------------

判断键是否在字典中 - has_key()  对比: in, not in 操作符

#--------------------------------------------------------------------------

has_key() - 判断键是否存在于字典中,如果键在字典里,返回True,否则返回False。仅存在于Python2!

Dict1.has_key(key1)

key1 — 需要被检索的键。强制参数。

对比:

in - 判断键是否存在于字典中,如果键在字典里,返回True,否则返回False。

not in - 判断键是否不存在于字典中,如果键不在字典里,返回True,否则返回False。



#-----------------------------------------------------------

遍历字典的键值元组 - items()  对比:for 循环

#-----------------------------------------------------------

items() - 以列表返回可遍历的(键, 值) 元组数组。

Dict1.items()


#-------------------------------------------------------------

删除字典的元素 - clear(), pop()  对比: del 语句

#-------------------------------------------------------------

clear() - 清空字典,将原先的字典变为空字典

Dict1.clear()

pop() - 弹出指定的键值对,并返回字典中指定键的值。修改原字典。

Dict1.pop(key1)

key1 — 被弹出值对应的键。强制参数。

对比:

del 语句  - 删除字典,原先的字典不复存在。也可删除字典中的某个键值对。

del Dict1

del Dict1[key1]


#-------------------------------------------------------

创建新字典 - fromkeys()

#-------------------------------------------------------

fromkeys() - 创建一个新字典,以序列seq中的元素做字典的键,val为字典所有键对应的初始值,默认为None。

{}.fromkeys(seq, val)

seq — 一个序列,其元素为新字典的键。强制参数。

val — 新字典里所有键对应的初始值,若不设置则默认为None。可选参数。



#---------------------------------------------------------------------

更新字典的键值对 - update()  对比:直接添加键值对

#---------------------------------------------------------------------

update() - 把字典Dict2的键值对更新(包括以新换旧和添加)到Dict1中,无返回值。

Dict1.update(Dict2)

Dict2 — 需要被添加和更新到Dict1的字典。强制参数。

对比:

直接添加键值对

Dict1[a_key]=a_value

a_key — 需要被添加到字典Dict1的键。强制参数。

a_value — 需要被添加到字典Dict1的与a_key对应的值。强制参数。


#----------------------------------------------------------------

字典的浅复制 - copy()  对比:对象赋值

#----------------------------------------------------------------

copy() - 返回字典的浅复制。

Dict1.copy()









https://blog.sciencenet.cn/blog-3031432-1060765.html

上一篇:Python:元组
下一篇:Matlab:创建NaN矩阵
收藏 IP: 134.1.1.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-18 18:12

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部