DAY__05

python

set集合

**无序且不重复的元素集合,不支持索引,不能切片,不能.sort排序,
只能转化为数组才能排序。修改里面的值是一种伪需求只能替换它在加进来**

1.输出集合里的元素 两个集合不能用+号相加
“`
set01={12,13,14}
print(set01) #{12, 13, 14}有可能顺序会打乱,set无
序集合输出结果也可能打乱
和之前不一样
print(max(set01))#求最大值
print(min(set01))#求最小值

print(set01[1]) #报错,set不支持索引

set01={12,13,14,14}
print(set01) #{12, 13, 14}自动去掉重复的元素

2.遍历集合里的元素

set01={12,13,14}
for i in set01:
print(i) #12
13

14 #遍历集合里的元素

“`
3.利用集合对数组去重

s=[1,2,2,3]
a=set(s)  #先将数组s转化为集合
          {1, 2, 3}此时为不重复的集合
b=list(a)  #再将集合转化为数组
print(b)   #[1, 2, 3]

4.add 向集合中添加元素

set01={}     #空集合为字典不能修改字典,有元素为集合
set01.add(1)
print(set01) #出错,因为原来没有元素
===========================================
set01={}
set01=set() ##不会出错,因为已转化为字典
set01.add(1)
print(set01)
======================================
set01={2}
set01.add(1)#不出错,因为原来有元素
print(set01)
======================================
set01={1}
set01.add(2)
set01.add(3)
set01.add(3)
print(set01) #{1, 2, 3}只会加入一个3位置不一定
                       ,先加入的不一定在后面

4.discard(元素值)移除集合的元素

set01={6,7,8}
set01.discard(7)
print(set01)
set01.discard(9)#移除不存在的元素不会报错,remove则会报错

5.集合的交集intersection(),并集union()

a={1,2,3}
b={2,3,4}
c=a.intersection(b)
print(c)  #{2, 3}
a.intersection_update(b)#取交集并更新为自己
================================================
a={1,2,3}
b={2,3,4}
c=a.union(b)
print(c)     #{1, 2, 3, 4}交集没有update方法
=================================

6.symmetric_difference()合并不同项

a={1,2,3}
b={2,3,4}
c=a.symmetric_difference(b)
print(c)   #{1, 4}
a.symmetric_difference_update(b)#更新自己
print(a)    #{1, 4}
===================
print(a.isdisjoint(b))#判断a是否不存在交集
print(b.issubset(a)) #b是否是a是否是b的子集合
print(a.issuperset(b))#判断a是否是b的父集合

字典

a={key:value}可以为集合也可以为字典,集合为简化版的字典

字典是可变类型,没有索引,不能切片,不能排序

输出

user={'name':'tom','age':'12'}
print(user)         #{'name':'tom','age':'12'}
print(user['name']) #tom
print(user['name'],user['age']) #tom 12
===============================
输出keys
print(user.keys())  #(['name', 'age'])
另一种写法:
for i in user:
   print(i)         #name
                     age
=================================
输出value
print(user.values())#(['tom', '12'])
另一种写法:
for i in user:
   print(user[i])  #tom
                    12

key 不可以重复,value可以重复

user={'name':'tom','age':12,}
user1={'name':'tom','father-name':'tom','age':12}

字典嵌套的访问

phone={'id':'001','name':{'apple':'1','sumsung':'2'}}
print(phone['name']['apple'])  #访问到1
=======================================
banji={'id':'001','student':[{'num':'p01'},{'num':'p02'}]}
print(banji['student'][1]['num'])
#此时可以用索引[2]因为是在数组里面

添加元素

uu={}
uu['name']='python'#若之前有name属性则替换 没有则添加
uu['score']=90
print(uu)  #{'name': 'python', 'score': 90}
del uu['score']#删除字段

demo

1.查看字典里有几个人

student=[          ##字典放在数组里
    {'name':'tom','age':12,'address':'苏州'},
    {'name':'tom','age':12,'address':'苏州'},
    {'name':'jack','age':12,'address':'苏州'}
]
s_names=set() #转化为集合是为了去除重复的人名
for s in student:
    s_names.add(s['name'])
print(len(s_names))#查看有几个人

猜你喜欢

转载自blog.csdn.net/MDZZ___/article/details/81138336