Python字典、集合的用法类型

字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分割的,以大括号包围的序列;
字典是python基础数据类型当中唯一一个映射关系的数据类型;
由于字典无序,所以我们定义字典和字典生成之后的元素的顺序是不同的
字典key的类型只能是不可变数据类型(不可哈希数据类型)
字典value的类型可以是任意数据类型。(可哈希数据类型)
一、字典的定义,查看数据和类型
dic={‘name’;‘zs’,‘age’:18,‘weight’:150}
print(dic)
print(type(dic))
二、字典的增删改查:
增加:

1、setdefault(指定键值)
dic={‘name’;‘zs’,‘age’:18,‘weight’:150}
dic.setdefault(‘height’,170)
print(dic)#{‘name’;‘zs’,‘age’:18,‘weight’:150,‘height’:170}
此种方法,如果键在字典中已经存在了,就不会覆盖字典中的值。
dic={‘name’;‘zs’,‘age’:18,‘weight’:150}
dic.setdefault(‘weight’,170) #weight值已经存在,其value值不会再改变。
print(dic) #{‘name’;‘zs’,‘age’:18,‘weight’:150}

2、根据key值来设置值,如果key存在就直接覆盖掉原有的值
dic={‘name’;‘zs’,‘age’:18,‘weight’:150}
dic[‘weght’]=180
print(dic) #{‘name’;‘zs’,‘age’:18,‘weight’:180}

字典的删除:
pop、popitem、clear 、del 方法
pop 弹出,返回并删除指定键对应的值
popitem 随机弹出一个键值元组,这里随机的原因是因为字典无序
clear 清空字典
del 直接从内存中删除变量,打印的效果为报错
dic={‘name’;‘zs’,‘age’:18,‘weight’:150}
dic.pop(‘name’) 删除指定内容
print(dic) #{‘age’:18,‘weight’:150}

dic={‘name’;‘zs’,‘age’:18,‘weight’:150}
dic.popitem(‘name’)
print(dic) #{‘age’:18,‘weight’:150}

dic={‘name’;‘zs’,‘age’:18,‘weight’:150}
dic.clear()
print(dic) #{}

dic={‘name’;‘zs’,‘age’:18,‘weight’:150}
del dic
print(dic) #报错

字典的修改:
(1).通过key来修改内容 info[key]=value
(2).update()方法

dic={‘name’;‘zs’,‘age’:18,‘weight’:150}
dic[‘weght’]=180
print(dic) #{‘name’;‘zs’,‘age’:18,‘weight’:180}

dic={‘name’;‘zs’,‘age’:18,‘weight’:150}
dic1={‘name’;‘赵四’,‘height’:180}
dic.update(dic1)
print(dic) #{‘name’;‘赵四’,‘age’:18,‘weight’:150,‘height’;180}

字典的查找:
5、查找操作

字典的取值
keys 返回一个包含字典所有key的列表
values 返回一个包含字典所有vaule的列表
get 以键取值,如果指定键不存在,默认返回None,可以指定返回内容
update 以字典格式更新指定键的内容,如果键不存在,创建键和值
items 返回字典键值呈元组形式的格式
len 测量字典,键值对的个数(整体)
dic={‘name’;‘zs’,‘age’:18,‘weight’:150}
a=dic[‘name’]
print(a) #‘zs’
b=dic.get(‘name’) #如果输出的内容不存在,将输出 None
print(b) #‘zs’

key=dic.keys() #dict_keys([‘name’, ‘age’, ‘weight’])
value=dic.values() #dict_values([‘zs’, 18, 150])
item=dic.items() #dict_items([(‘name’, ‘zs’), (‘age’, 18), (‘weight’, 150)])
print(len(dic)) #输出key值的个数

formkeys()
tup=(1,2,3,)
ret=dic.formkeys(tup)
print(ret) #{1:None,2:None,3;None}

字典的遍历:
in 判断指定的键是否在字典当中,即将被废除,之后我们python3用in
for …in … 通过for … in …:的语法结构,我们可以遍历字符串、列表、元组、字典等数据结构。
not in 判断指定的键是否不在字典当中

dic={‘name’;‘zs’,‘age’:18,‘weight’:150}
for key in dic.keys():
print(key)
for sky in dic
print(key) 都输出key值
for item in dic.items()
print(item) #输出键值对

for key,value in dic.items()
print(key,value) #分别输出对应的键和值

集合:
集合与之前列表、元组类似,可以存储多个数据,但是这些数据是不重复的(具有自动去重功能)。

1.创建集合并且查看内容和类型
set1={‘悟空’,‘八戒’}
print(set1)
print(type(set1)) <class ‘set1’>

2.添加操作
Add()、update()
set1={‘悟空’,‘八戒’}
set1.add(‘白骨精’)
print(set1) #{‘悟空’,‘八戒’,‘白骨精’}

set1={'悟空','八戒'}
 set2={'悟空','白骨精'}
 set1.update(set2)
 print(set1)   #  {'悟空','八戒','白骨精'}

3.删除操作
pop、remove、clear、del
pop() 随机删除一个元素
remove() 指定元素删除
clear() 清空集合
del() 删除集合内存地址

集合的遍历:
set1={1,2,3,4}
for i in set1:
print(i)
1
2
3
4

关系测试:
1.交集(& 或者 intersection) 取公共部分
2.并集。(| 或者 union) 取去除重复部分内容
3.差集。(- 或者 difference)取set1或者set2中除去公共部分的内容
4.反交集。(^ 或者 symmetric_difference)
5.子集。(< 或者 issubset)
6.超集。(> 或者 issuperset)
set1={1,2,3,4}
set2={3,4,5,6}
print(set1&set2)
print(set1.intersection(set2)) {3,4}
反交集:
print(set1.symmetric_difference(set2))
print(set1^set2) {1,2,5,6,}
并集
print(set1.union(set2))
print(set1|set2) {1,2,3,4,5,6}
差集
print(set1_set2)
print(set1.difference(set2)) {1,2}
子集
print(set1<set2) False
print(set1.assubset(set2)) False

超集
print(set1>set2)
print(set1.issuperset(set2)) False

猜你喜欢

转载自blog.csdn.net/weixin_44239541/article/details/85368685
今日推荐