字典(Dictionary)的简介
1.字典是一种数据类型
2.列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取
3.字典的元素是键值对,键(key)必须使用不可变类型,同一个字典中,键(key)建议是唯一
字典的创建
创建空字典用d={}
d1={1:'a',2:'b'}
a=[20]
d2={a:'k'}#报错
#案例:从终端输入,输入格式为key:value模式,如:name:maker,然后把数据存储到字典中
a=input("请输入信息:")
s1=a.split(':')[0]
s2=a.split(':')[1]
print(s1,s2)
d={s1:s2}
print(d)
字典的访问
注意:字典的访问不是通过下标,而且通过键来获取对应的值
1.通过键来访问对应的值
print(d[1])#打印键为1对应的值
print(d)#打印所有的键值对
print(d.keys())#输出字典中所有的键
print(d.values())#输出字典中所有的值
#案例:有字典dict={1:'悟空',2:'短笛',3:'贝吉塔',4:'小林',5:'冰河'}
#请把字典dict的键值取出,赋值给list1,把值取出,赋值给list2,再list1尾部添加66,list2尾部添加'星失'
dict={1:'悟空',2:'短笛',3:'贝吉塔',4:'小林',5:'冰河'}
print(list(dict.keys()))
print(list(dict.values()))
list1=list(dict.keys())
list2=list(dict.values())
list1.append(66)
list2.append('星失')
print(list1)
print(list2)
#接上面案例把list1作为字典的键,list2作为字典的值,组成新的字典
myd={}
n=0
for m in list1:
myd[m]=list2[n]
n+=1
print(myd)
for i in range(len(list1)):
myd[list1[i]]=list2[i]
print(myd)
字典的增删改
字典的添加修改删除
1.添加和修改:
格式:字典[键]=值#当键不存在时,那么添加一对键值进入到字典,如果有这个键,那么就是修改键对应的值
字典.update({1:'a',2:'b'})
2.删除
#注意:删除指定的key,则对应的value也会随着被删除
print(d1.pop(3)) #返回删除的key对应的value
d1.popitem() #随机返回并删除字典中的一对键和值(一般删除末尾对)
print(d1)
del d1[1] #删除元素
print(d1)
#del d1 #删除字典
#d1.clear #清空字典
#案例:把1-100的单数当成字典的键,偶数当成字典的值,创建一个字典,然后增加{'name':'maker'},
#{1:'one'}数据
a={}
for i in range(1,100):
if i%2==0:
continue
a[i]=i+1
print(a)
v={'name':'maker',1:'one'}
a.update(v)
print(a)
#在上面案例的基础上,删除11键元素,返回他的值,然后打印.随机删除上一题的一对键值对,并打印
#然后清空并删除字典
print(a.pop(11))
print(a.popitem())
a.clear()
del a
字典的遍历
dict1 = {"name":"jbb","sex":"man","age":18}
dict.copy() 返回一个字典的深复制
dict.fromkeys(seq, value) 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dict1.get(key, None) 返回指定键的值,如果值不在字典中返回default值
dict1.keys() 以列表返回一个字典所有的键
dict1.values() 以列表返回字典中的所有值
dict1.items() 以列表返回可遍历的(键, 值) 元组数组
#案例:d={1:'a',2:'b',3:'c'}
1、逐一显示指定字典中的所有键,并在显示结束之后输出总键数
d={1:'a',2:'b',3:'c'}
n=0
for i in d.keys():
print(i)
n+=1
print("n=",n)
2、 list1 = [1,2,3,4,5,6,7],
list2 = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
以list1中的元素作为key,以list2中的元素作为value生成一个新的字典dict2。
list1 = [1,2,3,4,5,6,7]
list2 = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
dict2={}
for i in list1:
dict2[i]=list2[i-1]
print(dict2)