day9.集合

作用:去重,关系运算

定义:由不同元素组成的集合,集合中是一组无序排列的可hash值(不可变类型),可以作为字典的key

   集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

常用操作:

  in 和 not in :判断某个元素是否存在于集合中

  并集  A|B : 在A或者在B

  交集  A&B :既在A又在B

  差集  A-B  :只在A不在B

  对称差集  A^B : 集合A与集合B中所有不属于A∩B的元素的集合

  是否相等  A==B :判断是否为同一个集合,返回布尔值

  父集,子集 >,>= ,<,<= :A>=B  判断A是否为B的父集,返回布尔值

掌握方法:

pythons={‘alex‘,‘egon‘,‘yuanhao‘,‘wupeiqi‘,‘gangdan‘,‘biubiu‘}
linuxs={‘wupeiqi‘,‘oldboy‘,‘gangdan‘}

  1.交集(求出即报名python又报名linux课程的学员名字集合)

  pythons & linuxs
  pythons.intersection(linuxs)
  linuxs.intersection(pythons) 2.并集(求出所有报名的学生名字集合)
  pythons | linuxs
  pythons.union(linuxs)
  linuxs.union(pythons)3.差集(求只报名python,没有报名linux的学生)  pythons - linuxs  pythons.difference(linuxs)4.对称差集(求出没有同时这两门课程的学员名字集合)  pythons ^ linuxs
  pythons.symmetric_difference(linuxs)
  linuxs.symmetric_difference(pythons)5.添加元素  linuxs.add(‘mxt‘)
  linuxs.add([1,2,3]) #报错,只能添加不可变类型6.删除元素  res=linuxs.pop()  #不用指定参数,随机删除,并且会有返回值  linuxs.remove(‘oldboy‘) #指定元素删除,元素不存在则报错,单纯的删除,没有返回值  linuxs.discard(‘oldboy1111111‘) #指定元素删除,元素不存在不报错,单纯的删除,没有返回值7.更新操作
linuxs={‘wupeiqi‘,‘oldboy‘,‘gangdan‘}
new_set={‘wupeiqi‘,‘alex_SB‘}
linuxs.update(new_set)    #用参数的元素更新原集合

8.清空操作

linuxs={‘wupeiqi‘,‘oldboy‘,‘gangdan‘}
linuxs.clear() #没有返回值,清空原集合

9.复制操作

linuxs={‘wupeiqi‘,‘oldboy‘,‘gangdan‘}
new_l = linuxs.copy()#复制,不改变原集合

10.  其他

  set1.difference_update(set2)  等价于  set1 -= set2

  set1.intersection_update(set2)  等价于  set1 &= set2

  set1.symmetric_difference_update(set2) 等价于 set1 ^= set2

时间: 2024-11-05 18:49:45

day9.集合的相关文章

day9集合以及这段时间的总结 未完待续

随笔: 移除空白:strip name.strip()切分:split name.split()长度:len print(len.('good')) 切片:切出子字符串 msg='hello world' print(msg[1,3]) starswith endswith : name='alex_SB' print(name.endswith('SB')) print(name.startswith('alex')) replace: name='alex say :i have one t

数组、字符串、集合

数组与集合的转换.数组与字符串的转换 ========数组变集合 String[] arr = {"abc","cc","kkkk"}; //把数组变成list集合有什么好处? /* 可以使用集合的思想和方法来操作数组中的元素. 注意:将数组变成集合,不可以使用集合的增删方法. 因为数组的长度是固定. contains. get indexOf() subList(); 如果你增删.那么会产生UnsupportedOperationExcepti

C#语言中数组和集合

数组.集合→用于储存多个同类型的数据数组 定长→用于保存固定数量的数据 在功能上,数组能实现的所有功能,集合都能实现:反之,集合能实现的某些功能,数组难以实现 占用内存少 便利速度快集合 不定长→保存的数据数量,可以在程序的执行过程中,发生变化 占用内存多 便利速度慢课时六:数组和集合 数组.集合→用于储存多个同类型的数据 数组 定长→用于保存固定数量的数据 在功能上,数组能实现的所有功能,集合都能实现:反之,集合能实现的某些功能,数组难以实现 占用内存少 便利速度快 集合 不定长→保存的数据数

通过反射了解集合泛型的本质

通过反射了解集合泛型的本质 import java.lang.reflect.Method; import java.util.ArrayList; /** * 通过反射了解集合泛型的本质 * @author shm * */ public class MethodDemo02 { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("hello"); list.add(

Java 之集合

collection(单列集合) List(有序,可重复) ArrayList     底层数据结构是数组,查询快,增删慢,线程不安全,效率高 Vector     底层数据结构是数组,查询快,增删慢,线程安全,效率低 LinkedList  底层数据结构是链表,查询慢,增删快,线程不安全,效率高 Set(无序,唯一) HashSet   底层数据结构是哈希表,依赖hashCode()和equals() 执行顺序:判断hashCode()是否相同,相同继续执行equals(),返回true不添加

集合和三元运算符

一.三元运算符 如下判断可以使用三元运算更方便的实现: a = 1b = 2 if a > 1: c = aelse: c = b 和下面是一样的: a = 1b = 2#下面这个c = a if a>1 else b 如下两种方法也是一样的:方式一: s=[]nums = list(range(1,11))for i in nums: if i%2==0: s.append(i)print(s)方式二:ss = [i for i in nums if i%2==0]print(ss)#这两种

集合函数 day4

1.集合 通过set强制转换,或者直接定义 1 nums = [0, 2, 4, 6, 8]#两种格式,带大括号与带中括号的 2 print(type(nums)) 3 aa = {0, 8, 2, 4, 6}#需要注意与字典的区别,字典是有分号的 2.交集

js算法集合(一) 水仙花数 及拓展(自幂数的判断)

js算法集合(一) ★ 最近有些朋友跟我说对js中的一些算法感到很迷惑,知道这个算法到底是怎么回事,但是就是不会用代码把它写出来,这里我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,希望能对大家有所帮助. 1.验证一个数是否为水仙花数 ①要写水仙花数的算法,我们首先来了解一下什么是水仙花数,水仙花数是指一个 3位正整数 ,它的每个位上的数字的 3次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153): ②了解了什么是水仙花数我们就开始分析该怎么下手.通过定义来看

笔记:多线程-集合

阻塞队列(BlockingQueue) 当试图向队列添加元素而队列已满,或是想从队列移除元素而队列为空的时候,阻塞队列导致线程阻塞,阻塞队列接口定义如下,他继承Queue<E>接口: public interface BlockingQueue<E> extends Queue<E> { ????/** ???? * 添加一个元素,如果队列满,则抛出 IllegalStateException异常 ???? */ ????????boolean add(E e); ??