dictionary(python教程从基础到精通,第7课—Dictionary(字典))

python教程从基本到知晓,第7课—Dictionary(字典)

Hello,小伙伴们,预祝各位五.一兴奋!

前面我们已学习了七大数据典范的Number(数字)、Boolean(布尔典范)、String(字符串),List(列表),Tuple(元组)。今天我们来研讨进一步学习Dictionary(字典)、Set(聚集)

1、Dictionary(字典)的界说

字典是另一种可变容器模子,且可存储随意典范东西。

字典的每个键值 key=>value 对用冒号 : 支解,每个对之间用逗号(,)支解,整个字典包孕在花括号 {} 中 ,格式如下所示:

dic = {key1 : value1, key2 : value2, key3 : value3 }

键必需是唯一的,但值则不必。值可以取任何数据典范,但键必需是不成变的,如字符串,数字。字典中的元素(key: value对)默许情况下会依据key的ASCII码主动排序,也就是说key改动了,那么这对值在字典中的位置约莫就会随着产生厘革。

一个复杂的字典示例:

示例代码:

dic1= {} #创建一个空字典
dic2= dict() #创建一个空字典
dic3= {'k1':1,'k2':2,'k3':3,1:'ab',2:'cd',3:'ef'} #key必需为数字或字符串,值可以为随意东西
dic4= dict(one=1,two=2,three=3)
dic5=
dict(zip(('one','two','three'),(1,2,3)))
dic6=
dict((('one', 1), ('two', 2), ('three', 3)))
dic7=
dict({('one', 1), ('two', 2), ('three', 3)})
print(dic1,dic2) # {} {}
print(dic3) # {'k1': 1, 'k2': 2, 'k3': 3, 1: 'ab', 2: 'cd', 3: 'ef'}
print(dic4) # {'one': 1, 'two': 2, 'three': 3}
print(dic5) # {'one': 1, 'two': 2, 'three': 3}
print(dic6) # {'one': 1, 'two': 2, 'three': 3}
print(dic7) # {'one': 1, 'two': 2, 'three': 3}


由于字典的元素是一对key与value,以是没办法像列表与元组一样直接用list(ojb)、turple(ojb)欺压,而是要借助dict.fromkeys(ojb)办法,代码如下:

dic1 = ('key1', 'key2', 'key3') # ['key1', 'key2', 'key3']亦可

print(dict.fromkeys(dic1)) # {'key1': None, 'key2': None, 'key3': None}
dic2 = dict.fromkeys(dic1, 'new') # 将元组或列表转成字典的键,其值全为'new'
print(dic2) # {'key1': 'new', 'key2': 'new', 'key3': 'new'}

2、Dictionary(字典)的拜候

字典可以经过key拜候到相应的值,还存在items类、get、setdefault等办法拜候办法,可以提取一切的键,亦可提取一切的值。

直接上代码:

dica = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(dica)
print(type(dica.items())) #<class 'dict_items'>
print(tuple(dica.items())) #(('Name', 'Runoob'), ('Age', 7), ('Class', 'First'))
print("dict['Name']:",dica['Name']) #经过key拜候值
print("dict['Age']:",dica['Age']) #经过key拜候值
for i in dica.keys(): print(i,end=',') #Name,Age,Class,
print()
for i in dica.values(): print(i,end=',') #Runoob,7,First,
print()
for i in dica: print(f'{i}:',dica[i]) #迭代办法,打印整个字典
for i,j in dica.items(): print(f'{i}:',j) #迭代办法,打印整个字典
print(dica.get('age','没有')) #前往key为age的值,没有找到就前往'没有'
print(dica.setdefault('age','没有')) #前往key为age的值,没有找到就前往'没有',但会新建age键,值为’没有‘
print(dica) # {'Name': 'Runoob', 'Age': 7, 'Class': 'First', 'age': '没有'}

3、Dictionary(字典)的利用

1) 改动元素的value

示例代码:

dica = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dica[
'Age'] = 8
print(dica) # {'Name': 'Runoob', 'Age': 8, 'Class': 'First'}


2) 改动元素的key,巧用pop(key)办法

示例代码:

dica = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dica[
'NianL'] = dica.pop('Age') #key的交换,用'NianL'代替'Age'
print(dica) # {'Name': 'Runoob', 'Class': 'First', 'NianL': 7}
if 'Age' in dica:
print("这个元素存在")
else:
print("这个元素不存在")

3) 更新字典update()办法

示例代码:

dic1={'name':'Jake','year':1998}
dic2={
'rank':6, 'year':2018}
dic1.update(dic2)
#兼并两个字典,key相反的值更新不出来
print(dic1) #{'name': 'Jake', 'year': 2018, 'rank': 6}


4) 删除字典元素pop()、popitem()、del()

示例代码:

dica = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dica['Class'] # 删除key为'Class'的元素
print(dica) # {'Name': 'Runoob', 'Age': 7}
del dica['Age'] # 删除key为'Age'的元素
print(dica) # {'Name': 'Runoob'}

dica = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print(dica.popitem()) #随机删除某键值对,并以元组的情势前往这个键值对,('Class', 'First')
print(dica) #{'Name': 'Runoob', 'Class': 'First'}

del dica # 删除整个字典,前面不成再拜候

5) 字典增长元素append()办法

示例代码:

dicta= dict.fromkeys(['k1','k2'],[1]) #将元组或列表转成字典的键,其值全为第二局部
print(dicta) #{'k1': [1], 'k2': [1]}
dicta['k2'].append(666) #由于append是列表的办法,不实用于元组与字典,将字典中的一切值都拓展一个print(dicta) #{'k1': [1, 666], 'k2': [1, 666]}
dicta['k1'] = 777 #修正'k1'的值为777
print(dicta) #{'k1': 777, 'k2': [1, 666]}

6) 字典的浅拷贝与深拷贝

浅拷贝(dict.copy()):拷贝父东西,不会拷贝东西的内部的子东西。

深拷贝(copy.deepcopy()): 它是copy模块的deepcopy办法,完全拷贝了父东西及其子东西。

dic1 = {'name': 'geek', 'car': [1, 2, 3]}
dic2 = dic1.copy()
print(dic1) #{'name': 'geek', 'car': [1, 2, 3]}
print(dic2) #{'name': 'geek', 'car': [1, 2, 3]}
dic1['car'].append(4)
print(dic1) #{'name': 'geek', 'car': [1, 2, 3, 4]}
print(dic2) #{'name': 'geek', 'car': [1, 2, 3, 4]}


我们再看看深拷贝,必要导入copy模块:

import copy
dic1={
'name':'geek', 'car':[1,2,3]}
dic3=copy.deepcopy(dic1)
print(dic1) #{'name': 'geek', 'car': [1, 2, 3]}
print(dic3) #{'name': 'geek', 'car': [1, 2, 3]}
dic1['car'].append(4)
print(dic1) #{'name': 'geek', 'car': [1, 2, 3, 4]}
print(dic3) #{'name': 'geek', 'car': [1, 2, 3]}

4、字典的内置函数

Python字典包孕了以下内置函数:

5、字典的内置办法

Python字典包孕了以下内置办法:

愉快学习的光阴总是过得很快,一不警惕又到开头啦。

先来给本人一个嘉奖,双手举起,yeah!

有什么成绩可以存眷我/私信我/加好友,让我们一同发展吧。

内容底部广告位(手机)
标签:

管理员
草根站长管理员

专注网站优化+网络营销,只做有思想的高价值网站,只提供有担当的营销服务!

上一篇:萝卜(冬吃萝卜夏吃姜,推荐5种萝卜做法,清淡少油,荤素搭配,真美味)
下一篇:返回列表

相关推荐