复习
-
格式化字符串
-
%
-
format
-
列表
-
假如统计学生信息,包括学号,姓名,年龄
字典
字典是列表以为python中使用最灵活的内置数据类型
字典是一种可变的数据类型
和列表的区别:
-
列表有序的,字典无序
-
列表通过索引(偏移)访问元素,字典通过KEY访问元素
-
字典的基本格式:
dic={key1:value1,key2:value2,…}
值可以取任意数据类型,但键不可以,必须为不可变数据类型,即key必须可哈希
哈希->不可变
特点:
-
key:value,键值对之间用冒号(:)链接
-
key:value 组成字典 的一个元素
-
键值对之间用逗号隔开
-
整个字典用花括号{{}}包裹
空字典的创建
dic={}
print(type(dic))
key1,key2,key3=1,2,3
value1,value2,value3=3,2,1
dic ={key1:value1,key2:value2,key3:value3}
dic = dict(id=20190101,name='Tom',age=19)
创建多元素字典
info={“id”:123,“name”:‘tom’,“age”:19}
强转
zip()
key=("1","2","3")
value=(1,2,3)
tp=dict(zip(key,value))
print(tp,type(tp))
通过字典的fromkeys方法创建字典
格式:
dict.fromkeys(seq,val=None)
-
创建并返回一个字典
- 以seq中的元素作为该字典的键
- val的值作为该字典中所有键对应的初始值;如不提供默认None
-
dict.fromkeys([],value) #可以把value的值分别赋给seq列表中的所有元素,并组成字典
字典的常见操作
增
- 直接添加键值对(dic[key]=value)
- 通过使用变量名[“键”]=“值”
- 如果Key不存在,则新建
- 若存在则更新
- 通过使用变量名[“键”]=“值”
- dict.update(dic)
- 把字典dic中的键值对(key:value)更新到dict中
- 两个字典的键完全不同,则将dic的键值对全部添加到dict中
- 存在相同的键,则更新dict中对应的值
习题
list1=[]
while True:
yorno=input("是否输入字典?")
if yorno=="y":
id1=input("请输入您的id:")
name1=input('请输入您的name:')
age1=input("请输入您的年龄:")
list1.append({'id':id1,'name':name1,'age':age1})
else:
print(list1)
break
改
- 直接修改
- dic[‘id’]=20190201
- dict.setdefault()
- 键存在,不改动,返回字典中的值
- 不存在,在字典中添加对应的键值对,并返回对应的值
删
-
dict.pop
- 格式:dict.pop(key,[default])
- 如果key存在与dict中,删除并返回dict[key]
- 如果不存在,给出默认值则返回默认值,未给出默认值则报错
- 格式:dict.pop(key,[default])
-
dict.popitem()
-
随机删除一对键值对
-
有返回值,元组
-
dict={“id”:20190101,“name”:“tom”,“age”:22}
-
key,value=dict.popitem()
-
print(dict)
-
-
deal dict[key]
- deal dict[age]
-
dict.clear()
- print(dict.clear())
- 将元素清除,保留字典本身
查
-
直接通过字典的key范文value
dic={1:2,2:3,3:4} print(dic['id']) print(dic['job'])
-
dict.get()访问value
-
语法格式 dict.get(key[,default])
-
不确定字典中是否存在某个键而又想对其进行操作,比如获取值–>get 方法
-
当key不存在的时候,不会抛出异常,返回none
遍历
-
dict.keys()
-
dict.values()
-
dict.items()
dic={'id':20190101,"name":"tom","age":22} for key in dic.keys(): print(key) for value in dic.values(): print(value) for item in dic.items(): print(item,end=' ') for key,value in dic.items(): print(key,":",value)
集合的创建
空集合的创建
st=set()
st
set()
st={1,2,3,4,5}
st={1,3,4,[1,3,2]} #错误,集合内不能有可变元素
强转
sr='hello'
t1=set(sr)
print(t1)
t2=set(dic1)
print(t2)
{'o', 'h', 'l', 'e'}
{'age', 'id', 'name'}
集合的基本操作
增
- set,add()
- set,update()
删
-
set.pop() 删除排序最小的一个元素
-
set.discard() ,移除元素,不存在也不会报错
-
set.remove() 移除元素,不存在则报错
-
del set
-
set.clear()
改
不可更改
查
不可查询
遍历
st={'cit','asdas','sdad'}
for i in st:
print(i)
for i in enumerate(st):
print(i)
集合的基本运算
a=set("abcd")
b=set("abc")
c=set("de")
print(b<a)
print(c<a)
交集
-
&
-
set.intersection(b)
a&b
->abc
a.intersection(b)
->abc
并集
-
|
-
set. union()
a|b
->abcd
a.union©
->abcde
差集
-
-
set.diference()
a-b
->d
a.difference(b)
->d
c=set(“de”)
print(b<a)
print(c<a)
#### 交集
- &
- set.intersection(b)
a&b
->abc
a.intersection(b)
->abc
#### 并集
- |
- set. union()
a|b
->abcd
a.union(c)
->abcde
#### 差集
- -
- set.diference()
a-b
->d
a.difference(b)
->d