学习
实践
活动
专区
工具
TVP
写文章

Python基础4字典

字典

Python中唯一存在映射的数据结构(key-value)。

字典的创建

字典有多个键及其对应的值构成的成对组成,且没有特殊顺序。字典的每个键值对用冒号分割,每个项之间用逗号分割,整个字典包括在大括号内。键必须是唯一的,但值不必。值可以取任何数据类型;但是键必须是不可变的,如字符串、数字或元组。

例如:s =

空字典:s = {}

也可以通过dict函数(下面介绍)创建字典

例如:s = dict(key1=value1,key2,value2)

字典的基本操作

修改字典,向字典添加新内容的方法是增加新键/值对,修改或删除已有键/值对。

例如:str = {'str1': 1, 'str2': 2}

str['str1'] #输出为1

str['str3'] = 3

str #输出为{'str1': 1, 'str2': 2,'str3': 3}

通过以上例子可以清楚的看到字典的修改操作就是,如果对字典的键可以在原来字典中找到,则视为修改操作,修改原来的值;如果这个键原来字典中不存在,则视为添加操作,把新的键和值添加进来。

删除字典,此处的删除指的是显式的删除,显式删除一个字典用del命令。

例如:str = {'str1': 1, 'str2': 2}

del str['str1'] #删除'str1'的键值,输出为{'str2': 2}

del str #删除整个str字典,输出同以前讲的相同,在访问会报错,str没有定义。

注意:1、对于字典中的键,只能出现一次,如果给同一个键赋两次值,则后一个会保存。

2、再次强调键不可变,因此可以用数字、字符或元组,但不能用列表,因为列表可变。

字典的函数

len(字典名)函数获得字典中的字典元素的个数

type()获取数据类型同用的函数

dict(t)函数,将序列转化为字典,t可以为其他字典或键值序列对

字典的方法

clear()方法,用于删除字典内所有的项,即为空字典。没有返回值,且不需要参数。

语法为dict.clear()

copy()方法,返回一个具有相同键值对的新字典。这种复制完完全全的在创建一个新的字典把原来字典的值复制过来。不需要参数

语法为newdict = dict.copy()

fromkeys()方法,用于创建一个新字典,以序列中的元素做字典的键,value为字典所有键对应的初始值。该方法返回结果为列表

语法为d.fromkeys(序列[,value])#d为定义好的变量

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

语法为dict.get(key,default=None)

注意:如果键不在字典中用其他方法会报错,get方法返回None

key in dict方法,in操作符用于判断键是否存在于字典中,如果键在字典中就返回true,否则返回false。

语法为:key in dict

items()方法,以列表返回可遍历的键值元组数组,不需要参数

语法为dict.items()

keys()方法,以列表返回一个字典所有键,不需要参数

语法为dict.keys()

setdefault()方法,用于获得与给定键相关联的值。如果键不存在与字典中就会添加键并将值设为默认值。

语法为dict.setdefault(key,default=None)

注意:与get()方法的比较使用,他们类似

update()方法,用于把其它字典的键值更新到当前字典中,没有返回值

语法为dict.update(新字典)

注:如果原来字典和新字典中相同的键,则内容被覆盖。

values()方法,以列表形式返回字典所有值。不需要参数

语法为dict.values()

注:此方法中值可以包含重复部分。

字典和列表的比较

字典查找和插入的速度快,且不会随着key的增加而变慢;列表的查找和插入时间会随着元素的增加而增加。

字典占用的内存空间要大于列表,字典产生的键值对会存放在内存中,而列表的值存放在外存中。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180105A0ZYS400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券