字典dict基本概念、字典常用操作、字典的元素访问及遍历
字典dict基本概念字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中键必须是唯一的,但值则不必。# 什么是映射?什么是字典dict?name = ['大头儿子','小头爸爸','隔壁老王']age = [6,35,37]# 首先虽然序列是有顺序的...
·
字典dict基本概念
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
键必须是唯一的,但值则不必。
# 什么是映射?什么是字典dict?
name = ['大头儿子','小头爸爸','隔壁老王']
age = [6,35,37]
# 首先虽然序列是有顺序的,但还是不能直接把名字和年龄关联起来,这里只是顺序对上,且并没有一对一的关系
dic = {'大头儿子':6, '小头爸爸': 35, '隔壁老王':37}
print(dic,type(dic))
# 用{}来表示,按照key:value来表示字典中的元素,其中key是键,value是值,key-value也就是键值对
# 这里dic就是一个字典类型的变量
dic = [{'name':'Tom', 'age':18},{'name':'Jack', 'age':19},{'name':'Alex', "age":17}]
print(dic)
# 一个以字典为元素的列表,有没有觉得键值对很像数据中的字段和字段值?
# 字典的特点
dic = {'a':1,'b':2,'c':3}
# 键值对,一定共同出现,不能只有一个
dic = {'a':1,'a':2}
print(dic)
# 不允许同一个键出现两次:创建时如果同一个键被赋值两次,后一个值会被记住
dic = {'var1':1, 'var2':'hello', 'var3':[1,2,3], 'var4':{'a':1,'b':2}}
# key必须是字符串,value则可以是任意对象:数值,字符串,序列,字典
print(dic)
# 字典是一个无序集合,序列由于没有key来做对应,所以以顺序来对应值
# 序列有顺序,字典没有!
dic['var5'] = '添加一个值' # 任意添加元素
dic['var4'] = '任意修改其中一个值' # 任意修改元素
del dic['var1'] # 任意删除元素
print(dic)
dic.clear() # 清空词典所有条目
print(dic)
del dic # 删除词典
#print(dic)
# 申明一个字典
dic = {'a':1,'b':2}
# 最简单直接的方式,手动书写申明一个字典变量,注意是:不是=
dic = dict(m = 10 ,n = 'aa', h = [1,2,3])
print(dic)
# dict()函数
lst1=[("a","fff"),("b","ggg")]
lst2=[["c",1],["d",2]]
lst3=(("e",[1,2]),("f",[3,4]))
dic1 = dict(lst1)
dic2 = dict(lst2)
dic3 = dict(lst3)
print(dic1,dic2,dic3)
# dict()由序列生成一个字典,嵌套序列,可以是list或者tuple
keys = ["a", "b", "c"]
dic1 = dict.fromkeys(keys)
dic2 = dict.fromkeys(keys, 'hello')
print(dic1,dic2)
# 只有key,直接生成一个字典
字典常用操作
字典内置函数&方法
# 字典常用操作
dic1 = {"a":1, "b":2}
dic2 = {"c":3, "d":4}
dic1.update(dic2)
print(dic1,dic2)
# dict.update()方法:更新/合并一个字典,把第二个字典合并到第一个字典,改变了第一个字典
a = {'m':1 , 'n':2 , 'p':3}
b = a
a.update({'q':4})
print(a,b)
# 和序列的原理一样,a和b指向同一个字典,所以会一起更新
a = {'m':1 , 'n':2 , 'p':3}
b = a.copy()
a.update({'q':4})
print(a,b)
# 通过.copy()方法,复制一个新的字典
print(len(a))
# 查看字典元素个数
print('m' in a)
print(1 in a)
# in / not in :判断是否包含,这里的判断对象是key
字典的元素访问及遍历
如何读取字典?
# 字典的元素访问
dic = {'a':1, "b":2, "c":3}
print(dic['a'])
#print(dic[1]) # 不能用序列的索引方式
# 字典里面也就同样的意思,但字典没有顺序,以key来作为指向,所以指向的key必须存在
poi = {'name':'shop', 'city':'shanghai', 'information':{'address':'somewhere', 'num':66663333}}
print(poi['information']['address'])
# 对于嵌套字典,输出嵌套内容,通过重复指向来输出
print(poi.get('name'))
print(poi.get('type',print('nothing')))
# .get(key)方法:直接查看key的value,如果没有相应key则返回None,添加print参数可以多返回一个值
print(poi.keys(),type(poi.keys()))
print(list(poi.keys()))
# .keys()方法:输出字典所有key,注意这里的输出内容格式是视图,可以用list()得到key的列表,类似range()
print(poi.values(),type(poi.values()))
print(list(poi.values()))
# .values()方法:输出字典所有values,原理同.keys()方法
print(poi.items(),type(poi.items()))
print(list(poi.items()))
# .items()方法:输出字典所有items(元素),原理同.keys()方法
# 字典的元素遍历
poi = {'name':'shop', 'city':'shanghai', 'information':{'address':'somewhere', 'num':66663333}}
for key in poi.keys():
print(key)
print('-------')
for value in poi.values():
print(value)
print('-------')
for (k,v) in poi.items():
print('key为 %s, value为 %s' %(k,v))
print('-------')
# for函数遍历
更多推荐
已为社区贡献1条内容
所有评论(0)