Python数据分析实战4.1-字典dict映射【python】

【课程4.1】 字典dict基本概念

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中

键必须是唯一的,但值则不必。

1.什么是映射?什么是字典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)
# 一个以字典为元素的列表,有没有觉得键值对很像数据中的字段和字段值?
-----------------------------------------------------------------------
{'大头儿子': 6, '隔壁老王': 37, '小头爸爸': 35} <class 'dict'>
[{'name': 'Tom', 'age': 18}, {'name': 'Jack', 'age': 19}, {'name': 'Alex', 'age': 17}]

2.字典的特点

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)  
-----------------------------------------------------------------------
{'a': 2}
{'var4': {'b': 2, 'a': 1}, 'var2': 'hello', 'var3': [1, 2, 3], 'var1': 1}
{'var4': '任意修改其中一个值', 'var2': 'hello', 'var5': '添加一个值', 'var3': [1, 2, 3]}
{}

3.申明一个字典

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,直接生成一个字典
-----------------------------------------------------------------------
{'n': 'aa', 'm': 10, 'h': [1, 2, 3]}
{'b': 'ggg', 'a': 'fff'} {'d': 2, 'c': 1} {'f': [3, 4], 'e': [1, 2]}
{'b': None, 'a': None, 'c': None} {'b': 'hello', 'a': 'hello', 'c': 'hello'}

小作业
① 用dict函数的时候,和直接申明一个字典,操作上什么区别?
② 用dict()函数从序列创建字典的时候,对序列有要求吗?必须是列表吗?
③ 字典是无序的,强化一下
④ 以dict()函数生成一个人的成绩单,包括语文,数学,外语,物理,化学几个元素

发布了36 篇原创文章 · 获赞 17 · 访问量 6274

猜你喜欢

转载自blog.csdn.net/qq_39248307/article/details/105457128