作为一个Python初学者,我想通过写博客的方式来记录下来自己成长的过程,同时也分享一下自己学习到的知识。以下都是一个Python初学者对Python语言的一些浅见和个人理解。
#字典
‘’'字典是“键值对”的无序可变序列,字典中的每个元素都是一个"键值对",包含:“键对象"和"值对象”。
可以通过"键对象"实现快速获取、删除、更新对应的"值对象"。
字典中通过"键对象"找到对应的"值对象"。“键"是任意的不可变数据,比如:整数、浮点数、字符串、元组。
但是:列表、字典、集合这些可变对象,不能作为"键”,并且"键"不可重复。"值"可以是任意的数据,并且可重复
1.字典的创建
①通过{}来创建字典对象
②通过dict()来创建字典对象
③通过zip()创建字典对象
④通过fromkeys()创建值为空的字典
‘’’
#test1({})
a = {"name":"haha","age":18,"job":"student"}
print(a)
#test2(dict())
a = dict([("name","haha"),("age",18)])
print(a)
#test3(zip())
k = ["name","age","job"]
v = ["hah",18,"teacher"]
d = dict(zip(k,v))
print(d)
#test4(fromkeys())
a = dict.fromkeys(["name","age","job"])
print(a)
‘’'2.字典元素的访问
①通过[键]获得"值"。若键不存在,则抛出异常
②通过get()方法获取"值"。指定键不存在,返回None;也可以设定指定键不存在时默认的返回的对象
③items():列出所有的键值对
④keys():列出所有的键 values():列出所有的值
⑤len():键值对的个数
⑥检测一个键是否在字典中
‘’’
#初始化一个字典对象
a = {"name":"haha","age":18,"job":"student"}
#test1([键])
print(a["name"])
print(a["age"])
#test2(get())
print(a.get("name"))
print(a.get("sex"))
print(a.get("sex","男"))
#test3(items())
print(a.items())
#test4(keys() values())
print(a.keys())
print(a.values())
#test5(len())
print(len(a))
#test6(in)
print("name" in a)
‘’'3.字典元素的添加、修改、删除
①给字典新增键值对,如果键已经存在,则覆盖旧的键值对;如果键不存在,则新增键值对
②update():将新字典中所有键值对全部添加到旧字典对象上。如果key有重复,
则直接覆盖
③del():删除字典中的元素 clear():删除所有键值对 pop():删除指定键值对,并返回对应的"值对象"
④popitem():随机删除和返回该键值对。
‘’’
#test1(添加)
a = {"name":"hah","age":18,"job":"student"}
print(a)
a["address"] = "hnay"
print(a)
#test2(update())
a = {"name":"haha","age":18,"job":"student"}
b = {"name":"xixi","money":100000,"sex":"男"}
a.update(b)
print(a)
#test3(del() clear() pop())
a = {"name":"haha","age":18,"job":"student"}
del(a["name"])
print(a)
b = a.pop("age")
print(b)
print(a)
a.clear()
print(a)
#test4(popitem())
a = {"name":"haha","age":18,"job":"student"}
b = a.popitem()
print(a)
print(b)
‘’'4.序列解包
序列解包可以让我们方便的对多个变量进行赋值
序列解包用于字典时,默认是对键进行操作;如果需要对键值对操作,则需要使用items();
如果需要对值进行操作,则需要使用values()
‘’’
#test
s = {"name":"haha","age":18,"job":"student"}
name,age,job = s #对键进行操作
print(name)
name,age,job = s.items() #对键值对进行操作
print(name)
name,age,job = s.values() #对值进行操作
print(name)
练习
#使用字典和列表打印表格数据
r1 = {"name":"小一","age":18,"salary":10000,"city":"北京"}
r2 = {"name":"小二","age":19,"salary":20000,"city":"上海"}
r3 = {"name":"小六","age":20,"salary":50000,"city":"南京"}
tb = [r1,r2,r3]
#获取第二行的人的薪资
print(tb[1].get("salary"))
#打印表中所有的薪资
for i in range(len(tb)):
print(tb[i].get("salary"))
#打印表中所有数据
for i in range(len(tb)):
print(tb[i].get("name"),tb[i].get("age"),tb[i].get("salary"),tb[i].get("city"))