python-----字典(dictionary)---1

        字典和列表类似,也是可变序列,不过与列表不同,它是无序的可变序列,保存的内容是以键值对的形式存放的,这类似于我们的新华字典,他可以把拼音和汉字关联起来,通过音节表可以快速找到想要的汉字。其中新华字典的音节表相当于键(key),而对应的汉字就是值。键是唯一的,而值可以是多个。字典在定义一个包含多个命名字段的对象很有用。

说明:python中字典相当于java或者c++中的map对象

字典的特征如下:

1、通过键而不是通过索引来读取。

        字典有时也称为关联数组或者散列表(hash),它通过键将一系列的值联系起来,这样就可以通过键从字典中获取指定项,但不能通过索引来获取。

2、字典是任意对象的无需组合

        字典是无序的,各项是从左到右随机排序的,即保存在字典中的项没有特定的顺序,这样可以提高查找顺序。

3、字典是可变的,并且可以任意嵌套

        字典可以在原处增长或者缩短(无需生成一份副本),并且他支持任意深度嵌套(她的值可以在列表或者其他字典)。

4、字典中的键必须唯一

        不允许同一个键出现两次,如果出现两次,则后一个值会被记住。

5、字典中的键必须不可变

        字典中的键是不可变的,所以可以使用数字、字符串或者元组,但不能使用列表。

一、字典的创建和删除

        定义字典时,每个元素都包含两个部分“键”和“值”。创建字典时,在“键”和“值”之间使用冒号分离,相邻两个元素使用逗号分隔,所有元素放在一个大括号“{}"中。语法格式如下:

dictionary = {'key1':'value1','key2':'value2','key3':'value3','keyn':'valuen',}

dictionary:表示字典名称

key1, key2,。。。keyn :表示元素的键,必须唯一的,并且不可变,例如可以时字符串、数值或者元组

value 1, value2.。。。valuen:表示元素的值,可以是任何数据类型,不是必须唯一。

word = {'che':'车','chen':'陈','chi':'吃'}
print(word)

执行结果:{'che': '车', 'chen': '陈', 'chi': '吃'}

同列表和元组一样,也可以创建字典。在python中,可以使用下面两种方法创建空列表

word4 = {} #空字典
print(word4)
word5 = dict()  #空字典

python的dict()方法除了创建一个空字典外,还可以通过已有数据快速创建字典。主要表现为两种形式。

1、通过映射函数创建字典

语法如下:

dictionary = dict(zip(list1,list2))

dictionary:表示字典的名称;

zip()函数:用于将多个列表和元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。如果想得到元组,可以将zip对象使用tuple()函数转换元组。使用列表则用list()函数转换即可。

list1是生成字典的键,list2是字典的值,如果长度不同,则以最短的为准。

例:

name = ['绮梦','冷一一','香凝','黛蓝']
sign = ['水平座','射手座','双鱼座','双子座']
zip2 = zip(name,sign)
word2 = dict(zip2)
print(word2)

执行结果:{'绮梦': '水平座', '冷一一': '射手座', '香凝': '双鱼座', '黛蓝': '双子座'}

2、通过给定的键值对创建字典

语法如下:

dictionary = dict(key1 = value1,key2 = value2,key3 = value3)

例:

dictionary = dict(绮梦 = '水平座',冷一一 = '射手座',香凝 = '双鱼座',黛蓝 = '双子座')
print(dictionary)
执行结果:{'绮梦': '水平座', '冷一一': '射手座', '香凝': '双鱼座', '黛蓝': '双子座'}

在python中,还可以使用dict对象的formkeys()方法创建值为空的字典,语法如下:

dictionary = dict.fromkeys(list)

例:

name6 = ('绮梦','冷一一','香凝','黛蓝')
name7 = dict.fromkeys(name6)
print(name7)

执行结果:{'绮梦': None, '冷一一': None, '香凝': None, '黛蓝': None}

另外,还可通过已经存在的元组和列表创建字典。例如,下面代码,创建一个保存字的元组和保存名的列表

例:

name = ('绮梦','冷一一','香凝','黛蓝')
sign = ['水平座','射手座','双鱼座','双子座']
word3 = {name:sign}
print(word2)

执行结果:{'绮梦': '水平座', '冷一一': '射手座', '香凝': '双鱼座', '黛蓝': '双子座'}

同列表和元组一样,不需要的字典可以使用del命令删除。例如,通过下面代码即可将一定义的字典删除

del dictionary

另外,如果只想删除字典的全部元素,可以使用字典对象的clear()方法实现。执行clear()方法后,原字典将变为空字典。例如,下面的代码将清楚字典的全部元素

dictionary.clear()

除了上面介绍的字典的删除元素外,还可以使用字典对象的pop()方法删除并返回指定键的元素,以使用字典对象的POPitem()方法删除并返回字典的一个元素

dictionary = dict(绮梦 = '水平座',冷一一 = '射手座',香凝 = '双鱼座',黛蓝 = '双子座')
dictionary.pop('绮梦')     #删除指定的
dictionary.popitem()      #最后一个,大家可以自己再试一下
print(dictionary)

执行结果:{'冷一一': '射手座', '香凝': '双鱼座'}

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值