目录
字典是不重复且无序的数据结构,也可称为非序列数据结构。
另外,字典是一个“键-值”对的集合。
键必须是唯一的,并且是不可变的,可以是字符串、数字或元组。
元素的值可以是任何数据类型,不是必须唯一的。
字典的创建
定义字典时,每个元素都包含了“键”和“值”两个部分:
常规创建字典
语法格式:
dictionary = {'key1':'value1','key2':'value2','key3':'value3',...,'key n':'value n',}
# dictionary表示词典名称;
# key表示键;
# value表示元素的值。
注:创建字典时,“键”和“值”之间用冒号分隔,相邻两个元素之间用逗号分隔。所有元素均放在一个大括号中。
示例代码如下:
dictionary = {'age':'24','gender':'女','ID':'1001'}
print(dictionary)
运行结果:
创建空字典
语法格式1:
dictionary = { }
语法格式2:
dictionary = dict( )
示例代码如下:
dictionary1 = {}
dictionary2 = dict()
print(dictionary1)
print(dictionary2)
运行结果:
通过映射函数创建字典
语法格式:
dictionary = dict(zip(list1 , list2))
# dictionary表示词典名称;
# zip()函数:用于将多个列表或元组对应位置的元素组成元组,并返回包含这些内容的zip对象;
# list1表示一个列表,指定生成字典的键;
# list2表示一个列表,指定生成字典的值。
示例代码如下:
a = ['张三','李斯','王五']
b = ['55','33']
dictionary = dict(zip(a , b))
print(dictionary)
注:若列表1和列表2指定的列表长度不同,则返回的字典的长度为最短列表长度。
运行结果:
zip()函数语法格式:
zip(list1,list2,list3...list n)
注:1.zip()函数返回的是包含元组的列表。
2.用tuple()函数将zip对象转换为元组;用list()函数将zip对象转换为列表;用dict()函数将zip对象转换为字典。
示例代码如下:
a = zip(['张三','李斯'],['王五','钱多多'])
print(a)
print(list(a))
b = zip(['张三','李斯'],['王五','钱多多'])
print(tuple(b))
c = zip(['张三','李斯'],['王五','钱多多'])
print(dict(c))
运行结果:
通过给定的“键”“值”对创建字典
语法格式:
dictionary = dict(key1 = value1,key2 = value2,key3 = value3,key n = value n)
# dictionary表示字典名称;
# key表示键;
# value表示元素的值。
示例代码如下:
dictionary = dict(张三 = '王五',李斯 = '钱多多')
print(dictionary)
运行结果:
创建值为空的字典
使用dict对象的fromkeys()方法,语法格式:
dictionary = dict.fromkeys(list)
# dictionary表示字典名称;
# list表示字典的键的列表;
示例代码如下:
name_list = ['张三','李斯','王五']
dictionary = dict.fromkeys(name_list)
print(dictionary)
运行结果:
通过已存在的元组创建字典
语法格式:
dictionary = {tuple : sign}
# dictionary表示字典名称;
# tuple表示作为键的元组;
# sign表示作为值的列表。
示例代码如下:
name_tuple = ('张三','李斯','王五')
sign = [55,66,77]
dictionary = {name_tuple : sign}
print(dictionary)
运行结果:
通过已存在的列表创建字典
语法格式:
dictionary = {tuple(list) : sign}
# dictionary表示字典名称;
# list表示作为键的元组;
# sign表示作为值的列表。
示例代码如下:
name_list = ['张三','李斯','王五']
sign = [55,66,77]
dictionary = {tuple(name_list) : sign}
print(dictionary)
运行结果:
注:列表不能用作哈希值,若直接将列表作为字典的键,需将列表先转换为元组再使用,否则会出现如下报错:
本文详细讲解了创建字典的几种常用的方法,后续会讲解字典的其他相关操作。。。。。。