Dictionary字典
4、Dictionary字典
-
字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号编写,拥有键和值。
-
通过在方括号内引用其键名来访问字典的项
-
通过引用其键名来更改特定项的值
-
使用 for 循环遍历字典
-
values()-返回字典的值
-
items()-返回键和值
-
in
-
字典长度
-
添加项
-
删除项
- pop
-
字典方法
- get
- keys
代码例子
-
Dictionary - 字典
用{}创建字典,键(key)和值(value)之间用冒号(:)分割,键值对之间用逗号(,)分割
d1 = {100:"hello","python":[2,4,6]}
print(d1,type(d1)) # dict-字典
创建一个空的字典用dict()函数
d2 = dict()
print(d2,type(d2))
{}创建空的字典
d3 = {}
print(d3,type(d3))
创建字典
user={'username':'zhang','age':20}
print(user)
[key]获取key对应的value
print(user['username'],user['age'])
print(user['sex']) #KeyError: 'sex'
新建一个键值对
user['sex']='男' #'sex'在字典中不存在
print(user)
根据键修改值
user['age']=22 #'age'在字典中已存在
print(user)
# user['username']='xiaoming'
# user['age']=18
# user['sex']='女'
# print(user)
update(dict) - 用给定的字典同时增加或修改原字典)
xm = {'username':'xiaoming','age':18,'no':1001}
user.update(xm)
print(user)
同一个字典中键不能重复,不可变的类型(如:数字、字符串、元组)可以作为键
d3 = {'hello':100,'python':100,('java',):100} #列表是可变的,不能作为键
print(d3)
get() - 根据关键字获取值,但是关键字不存在,不报错,返回指定的值,默认返回None
print(d3.get('age',20) )
pop(key) - 根据键删除键值对
value = d3.pop('hello') #返回键对应的值,如果键不存在,抛出错误KeyError
print(value)
print(d3)
clear() - 清空
d3.clear()
print(d3)
字典遍历
scores={'python':100,'java':100,'web':99}
scores['js']=98
print(scores)
keys() - 获取键 ,返回的类型是dict_keys
print(scores.keys(),type(scores.keys()))
#list() - dict-keys -->list
ks = list(scores.keys() )
print(ks[0])
values() - 获取值 ,返回dict_values
vs = scores.values()
print(vs,type(vs))
vs = list(vs)
print(vs)
for in 语句遍历
for k in scores:
print(k,scores[k]) #k字典中的键
# scores['php']=97
# scores['php']=0
# print(scores)
sc = scores.setdefault('php',0)
print(scores)
print(sc)
字典存放列表数据
names = ['zhang','lisi','xiaoming','zhao','liu']
scores = [95,88,99,90,95,10]
students={}
for i in range(0,len(names)):
students[names[i]]=scores[i]
print(students)
print(students['liu'])
zip() - 拉链
z = zip(names,scores)
stu = dict(z)
print(stu)
copy() - 拷贝
stu2 = stu.copy() #创建新的字典
# stu2 = stu # 不创建新的字典
print(stu,id(stu))
print(stu2,id(stu2))
hash() - 哈希函数
# print(hash('zhang'))
# print(hash('zhang'))
# print(hash('lisi'))
# stu3={}
# stu4 = stu3.fromkeys(names) #创建一个新的字典并返回 把names中的元素作为键
# print(stu4)
# print(stu3.fromkeys(names,0)) #指定键对应的值,如果不指定,默认值是None
items() - 返回dict_items
its = stu2.items()
print(its,type(its))
its = list(its) #[('zhang', 95), ('lisi', 88), ('xiaoming', 99), ('zhao', 90), ('liu', 95)]
it =its[0] #('zhang', 95)
print(it[0],it[1])
in - 检查字典中是否有给定的键
print('zhou' in stu2) #False
print('lisi' in stu2) #True
len(dict) - 返回字典中键的数量
print(len(stu2)) # 一个键值对算一个