Python随记(三)字典

Python随记(三)字典

字典(Dictionary)

也是序列(sequence)的一种,是另一种可变容器模型。字典的值并没有特殊的顺序,但是都存储在一个特定的键(Key)下。键可以是任意类型对象,如字符串、数字、元组等其他容器模型。

与列表通过编号引用值不同,字典是一种通过名字来引用值的数据结构。这种数据结构称为映射(mapping)。字典是Python中唯一内建的映射类型。

创建字典的目的,就是为了通过轻松查找某个特定的词语(键),从而找到它的定义(值)。

1、  创建字典

字典由键和对应值成对组成。

·每个键和它的值之间用冒号(:)隔开,

·项之间用逗号(,)隔开,

·整个字典用一对大括号{}包起来。如下例所示:

D1= {'Alice': '2341',  'Beth': '9102',  'Cecil': '3258'}

注意:键必须独一无二,但值则不必。

值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。

     也可以用dict( )类型,通过其他映射(比如其他字典)或者(键,值)对的序列建立字典

     比如有序列:L1 = [(‘aaa’, 111), (‘ABC’, 123) ]

     D =  dict( L1 )

     那么D就被设置为 { ‘aaa’:111,‘ABC’, 123}

2、  字典的基本操作

· led (d) 返回字典d中(键-值)对的数量;

· d[k] 返回关联到键k上的值;

· d[k] = v 将键K关联的值设置为v

· del d[k] 删除键为K的项

· k in d 检查d中是否有含有键为K的项

字典与列表的一些重要区别:

· 成员资格: 表达式k in d查找的是键,这就是我最开始说的,字典通过名字来引用值。

· 键类型:字典的键没必要非得是整型数据,键可以是任意不可变类型。

· 自动添加:即是键起初在字典中并不存在,也可以为它赋值,这样字典就会建立新的项。

3、  字典方法

· dict.clear()-----删除字典内所有元素

· dict.copy()-----返回一个字典的浅复制

           这个操作在副本字典中替换(只是把键对应的值换了)值的时候,原始字典不变

           当副本字典中的值被原地修改(比如删除或添加某值)之后,原始字典也变化

           解决方法是使用函数deecopy

· ict.fromkeys(seq[, val]))-----创建一个新字典,以序列seq 中元素做字典的键,val 为字典所

有键对应的初始值

· dict.get(key, default=None)----- 返回指定键的值,如果值不在字典中返回default值

· dict.has_key(key)----- 如果键在字典dict里返回true,否则返回false

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

· dict.keys()-----以列表返回一个字典所有的键

· dict.setdefault(key, default=None)----- 和get()类似, 但如果键不存在于字典中,将会添加键并

将值设为default

· dict.update(dict2)----- 把字典dict2的键/值对更新到dict里

· dict.values()-----以列表返回字典中的所有值

· pop(key[,default])----- 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

· popitem()-----随机返回并删除字典中的一对键和值。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏.Net Core 开发记录

JavaScript权威指南 - 数组

JavaScript数组是一种特殊类型的对象。 JavaScript数组元素可以为任意类型,最大容纳232-1个元素。 JavaScript数组是动态的,有...

584
来自专栏雪胖纸的玩蛇日常

老男孩Python全栈开发(92天全)视频教程 自学笔记14

1382
来自专栏mukekeheart的iOS之旅

OC学习5——类和对象

1、OC是在C语言基础上进行扩展得到的一门面向对象的程序设计语言,它也提供了定义类、成员变量和方法的基本功能。类可以被认为是一种自定义的数据类型,使用它可以定义...

2626
来自专栏Golang语言社区

GO-字符串常用操作

package main import ( "fmt" "strconv" "strings" ) func ma...

3557
来自专栏禁心尽力

Redis之数据类型大全

一:String类型 1、set方法:设置key对应的值为string类型的value,如果该key已经存在,则覆盖key对应的value值。所以在redis中...

8637
来自专栏marsggbo

python大小写转换函数

1.全部转换成大写:upper() 用法: str = ‘marsggbo’     print str.upper() 结果:MARSGGBO 2....

1829
来自专栏Golang语言社区

GO-字符串常用操作

package main import ( "fmt" "strconv" "strings" ) func ma...

3245
来自专栏我和PYTHON有个约会

08.程序编程基础2~基本数据类型

布尔类型,一种特殊的数据类型,在python中可以取值为True或者False,用于表示只有两种结果的情况

653
来自专栏小白的技术客栈

Python内置数据结构之集合

今天给大家介绍内置数据结构集合的用法。 看一下集合的思维导图: ? 集合的特点 元素是唯一的 元素是无序的,不是线性结构 集合元素是可hash的 聚合的含义和数...

3404
来自专栏Python小屋

Python常用运算符含义与用法演示

+运算符除了用于算术加法,还可以用于列表、元组和字符串的合并或连接,生成新对象: >>> 3 + (3+4j) #整数和复数相加 (6+4...

2214

扫码关注云+社区