标签:字符 遍历字典 两种方法 get 记忆 span ctc 提高 int
字典与列表类似,也是可变序列,但它是无序的可变序列,保存的内容以“键值对”的形式存放。一个键(key)对应一个值(value)。键是唯一的,而值可以有多个,也可以重复。
特点:
1、通过键来读取值:字典也称为关联数组或散列表(hash)。
2、字典是任意对象的无序集合:这样可以提高查找效率。
3、字典是可变的,可以在原处增长或缩短(无须生成一个副本),并且可以任意嵌套。
4、字典中的键必须是唯一:如果出现两个相同的键,只记忆最后一个值。
5、字典中的键不可变,可以使用数字、字符串、元组,但不能使用列表。
# 创建字典时,键和值之间用冒号分隔,相邻的两个元素用逗号分隔,所有元素放在大括号中。 # dictionary = {‘key 1‘:‘value 1‘, ‘key 2‘:‘value 2‘, ‘key 3‘:‘value 3‘,...,‘key n‘:‘value n‘, } # 创建一个字典,保存QQ号 dictPhone = {‘zack‘:‘25890526‘, ‘QQ‘:‘25890526‘, ‘腾讯‘:‘10000‘} print(dictPhone) # 创建空字典,有两种方法 dictEmpty1 = {} dictEmpty2 = dict() print(dictEmpty1,dictEmpty2) # 通过映射函数创建字典 : dictionary = dict(zip(list1,list2)) # list1生成字典的键,list2生成字典的值。如果列表长度不同,以短的列表为标准。 list1 = [‘1‘,‘2‘,‘3‘] list2 = [‘one‘,‘two‘,‘three‘] tuple1 = (‘1‘,‘2‘,‘3‘) tuple2 = (‘one‘,‘two‘,‘three‘) # print(zip(list1,list2)) for i in zip(list1,list1): print(i,end=‘ ‘) # (‘1‘, ‘one‘) (‘2‘, ‘two‘) (‘3‘, ‘three‘) print() # dictlist = list(zip(list1,list2)) dictlist = dict(zip(list1,list2)) print(dictlist) dicttuple = dict(zip(tuple1,tuple2)) print(dicttuple) dictall = dict(zip(list1,tuple2)) print(dictall) # zip()函数,用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。 # 获取字典则用dict(),获取列表则用list(),获取元组则用tuple()。 # 通过给定关键字参数创建字典:dictionary=dict(key1=value1,key2=value2,...,keyn=valuen) dictqq=dict(qq=25890526,zack=‘25890526‘,腾讯=‘10000‘) print(dictqq) # 使用dict对象的fromkeys()创建值为空的字典:dictionary=dict.fromkeys(list) listk=[‘qq‘,4,‘hello‘] dictk=dict.fromkeys(listk) print(dictk) # 用一个元组和一个列表创建字典 tupleb=(‘qq‘,‘zack‘,‘腾讯‘) listb=[25890526,25890526,‘10000‘] dictb={tupleb:listb} print(dictb) # 不需要的字典可以用del删除:del dictionary # 删除字典的全部元素:dictionary.clear() # pop()方法删除并返回指定键的元素 print(dictall) print(dictall.pop(‘1‘)) # popitem()方法删除并返回最后一个元素。 print(dictall) print(dictall.popitem()) # 通过键下标访问 dictd={‘apple‘:25.5,‘bnana‘:31.2,‘orange‘:16} print(dictd[‘bnana‘]) # 为了避免异常,将上述代码改为如下: print(dictd[‘bnana‘] if ‘bnanaxxx‘ in dictd else ‘没有此项‘) # 另一个避免异常的方法 print(dictd.get(‘bnana‘,‘没有此项‘)) # 遍历字典:dictionary.items() dictc = {‘zack‘:‘25890526‘, ‘QQ‘:‘25890526‘, ‘腾讯‘:‘10000‘} dictTemp = dictc.items() print(dictTemp) # dict_items([(‘zack‘, ‘25890526‘), (‘QQ‘, ‘25890526‘), (‘腾讯‘, ‘10000‘)]) # 只用一个参数获取的是字典的元素 for i in dictTemp: print(i) # 用两个参数获取的是键和值 for i,j in dictTemp: print(i,j) # 获取每个元素的键 for i in dictc.keys(): print(i) # 获取每个元素的值 for i in dictc.values(): print(i) # 添加 dictd = {‘zack‘:‘25890526‘, ‘QQ‘:‘25890526‘, ‘腾讯‘:‘10000‘} dictd[‘zoe‘] = ‘147258369‘ print(dictd) dictd[‘QQ‘] = 987654321 # 如果键是已经存在,相当于修改 print(dictd) del dictd[‘zack‘] # 删除一个元素,如果删除不存在的元素将抛出一个异常 print(dictd) if ‘zoe‘ in dictd: del dictd[‘zoe‘] print(dictd) else: print(‘没有‘) # 字典推导式 import random dicte = {i:random.randint(10,100) for i in range(1,10)} print(dicte) name = [‘绮梦‘,‘冷伊一‘,‘香凝‘,‘黛兰‘] # 作为键的列表 sign = [‘水瓶座‘,‘射手座‘,‘双鱼座‘,‘双子座‘] # 作为值的列表 dicte = {i:j for i,j in zip(name,sign)} print(dicte)
标签:字符 遍历字典 两种方法 get 记忆 span ctc 提高 int
原文地址:https://www.cnblogs.com/zack6688/p/13508818.html