首页 > 编程语言 > 详细

Day8 Python基础之遗漏知识点(六)

时间:2018-06-09 21:45:42      阅读:117      评论:0      收藏:0      [点我收藏+]

1. 遗漏知识点

深、浅拷贝:   http://www.cnblogs.com/yuanchenqi/articles/5782764.html

a=b:

浅拷贝: 

深拷贝

集合(set)

集合的定义和应用

集合是一个无序的不重复的数据组合,它的主要作用如下:

      • 去重,把一个列表变成集合,就自动去重了
      • 关系测试,测试两组数据之前的交集、差集、并集等关系
      • 集合对象是一组无序排列的可哈希(python中不可变的对象都是可哈希的)的值:集合成员可以做字典的键
      • 集合本身是不可哈希的,不能用作字典的键

:因为集合是无序的,所以只能通过迭代器或for循环取出其中的值

有关集合的一些操作(增删改查)

1.创建集合:set()和frozenset()

2.访问集合:由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历或使用in、not in来访问或判断集合元素。

技术分享图片
s1=set(hello)
s2=set([hello,1,2])
print(h in s1)
print(h in s2)
True
False
View Code

3. 更新集合:

可使用以下内建方法来更新:

s.add()  #添加一个元素
s.update()  #添加多个元素
s.remove()  #删除指定元素

s.pop()  #随机删除某一元素

s.clear()  #清空集合

注意只有可变集合才能更新:

技术分享图片
1 a=set([1,2,3,hello])
2 print(type(a))
3 a.add(uu)
4 a.add(u)
5 print(a)
6 结果:{1, 2, 3, u, hello, uu}
s.add()
技术分享图片
1 a=set([1,2,3,hello])
2 print(type(a))
3 a.update(HO)
4 a.update(MM)
5 a.update([1,MM])
6 print(a)
7 结果:{1, 2, 3, hello, H, MM, O, M}
s.update()

4. 删除集合

  del

集合关系测试 

1 in ,not in
2 集合等价与不等价(==, !=)
3 子集(a<b)、超集(b>a)

  子集(issubset) 超集(issuperset)

技术分享图片
1 print(set(venus)==set(venusnusnus))
2 True
3 print(set(venus)<set(venus))
4 False
5 print(set(venus)<set(venusyo))
6 True
123

4.并集(I)

  并集(union)操作也就是数学中的并集合运算,联合符号有个等价的方法,union()。

5.交集(&)

 交集(intersection)也就是数学中的交集运算,交集符号的等价方法是intersection()

技术分享图片
1 print(set(abc) & set(bcd))
2 print(set(abc) | set(bcd))
3 结果:{c, b}
4        {c, d, b, a}  
联合、交集

6.差集(-)

 差集(difference)a-b=in a but not in b=a-a&b;b-a=in b but not in a=b-a&b

7.对称差集(^)

 对称差集(symmetric_difference)a^b=a|b-a&b 

技术分享图片
 1 a=[1,2,3]
 2 b=[3,4,5]
 3 print(set(a).union(set(b)))
 4 print(set(a).intersection(set(b)))
 5 print(set(a).difference(set(b)))
 6 print(set(a).symmetric_difference(set(b)))
 7 结果:
 8 {1, 2, 3, 4, 5}
 9 {3}
10 {1, 2}
11 {1, 2, 4, 5}
View Code

       注:既可以使用符号也可以使用集合的方法

 

  

 

 

 

 

 

 

 

Day8 Python基础之遗漏知识点(六)

原文:https://www.cnblogs.com/weinapang/p/9152748.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!