首页 > 其他分享 >day09-集合

day09-集合

时间:2024-01-22 18:23:41浏览次数:32  
标签:输出 day09 set 元素 print 集合 my

集合(Set)是一种可变、无序的数据类型,集合中的元素是唯一的,不重复的 诶?我们之前讲过的字典也是同样的可变,无序的数据类型,但是字典是键值对的存储形式,而集合不是

1、初识集合

集合使用大括号 {} 包裹着,元素之间使用逗号 分隔,集合中的元素可以是字符串、数字、元祖等其他任何不可变数据类型。
# 字典例子
set = {1, 2, '3', (1, 2)}

print(set)

 

集合里的元素不能放可变数据类型,必须是不可变的数据元素

2、创建集合

使用{ }创建

set = {1, 2, 3, 4, 5}
print(set)

# 输出结果
{1, 2, 3, 4, 5}

 

直接使用花括号创建的字典,那突然有个问题,创建空集合使用{}可以用吗?
set2 = {}
print(set2,type(set2))

# 输出结果
{} <class 'dict'>

 

结果是字典类型,说明使用{ }创建的是空字典    

使用set() 函数

set() 是一个内置函数,用于创建一个集合。set() 函数可以接受一个可迭代对象作为参数,并将其转换为一个集合。如果没有提供参数,则返回一个空集合。 可迭代对象有字符串,列表,元祖,字典,集合 1、创建空集合
my_set = set()
print(my_set, type(my_set))

# 输出结果
set() <class 'set'>

 

2、集合里放字符串
my_set = set('hello')
print(my_set, type(my_set))

# 输出结果
{'l', 'o', 'h', 'e'} <class 'set'>

 

3、集合里放列表
my_set = set([1, 2, 3, 4])
print(my_set, type(my_set))

# 输出结果
{1, 2, 3, 4} <class 'set'>

 

4、集合里放元祖
my_set = set((1, 2, 3, 4))
print(my_set, type(my_set))

# 输出结果
{1, 2, 3, 4} <class 'set'>

 

5、集合里放字典
my_set = set({"1": 1, "2": 2, "3": 3})
print(my_set, type(my_set))

# 输出结果
{'3', '2', '1'} <class 'set'>

 

集合里元素是不可变元素,上述是使用set()函数可以把列表和字典转换为集合元素,而因为字典中键是不可变的,所以使用set函数放入字典,只会转换字典的键

3、集合特性

集合最大的特性是元素是唯一的,不允许重复

唯一性

举例说明:
my_set = {1, 2, 3, 2, 3, 5}
print(my_set)
猜猜打印结果是什么 输出结果:{1, 2, 3, 5} 集合不允许有重复元素,后边可以帮助我们去重  

无序性

表示我们无法通过索引取值my_set[0] 会报错  

列表和集合的区别

1、列表是[ ],集合是{ } 2、列表是有序的,可索引取值,集合是无序的,不可索引取值 3、列表可以放重复的元素,集合元素是唯一的,不会重复

4、集合增删改查

  • 使用 add() 方法添加单个元素到集合中。
  • 使用 update() 方法添加多个元素到集合中。
my_set = {1, 2, 3}
my_set.add(4)  # 添加单个元素
my_set.update({5, 6})  # 添加多个元素
print(my_set)  # 输出:{1, 2, 3, 4, 5, 6}

  • 使用 remove() 方法删除指定的元素。如果元素不存在,会引发 KeyError 错误
  • 使用 discard() 方法删除指定的元素。如果元素不存在,不会引发错误
  • 使用 pop() 方法删除并返回集合中的任意一个元素
my_set = {1, 2, 3, 4, 5, 6}
my_set.remove(4)  # 删除指定元素
my_set.discard(5)  # 删除指定元素
print(my_set)  # 输出:{1, 2, 3, 6}

popped_element = my_set.pop()  # 删除并返回任意一个元素
print(popped_element)  # 输出:1
clear() 也可以清空集合

集合中的元素是不可变的,所以不能进行修改

同样,集合无序的,所以也无法查询 不过我们可以通过in方法键字可以判断一个元素是否存在于集合中,如果有返回true,否则返回False
my_set = {1, 2, 3, 4, 5}
print(3 in my_set)  # 输出:True
print(6 in my_set)  # 输出:False

5、集合常见方法

len(set)

my_set = {1, 2, 3, 4, 5}

print(len(my_set))  # 5

 

max(set)

my_set = {1, 2, 3, 4, 5}

print(max(my_set))  # 5

 

min(set)

my_set = {1, 2, 3, 4, 5}

print(min(my_set))  # 1

 

如果集合中有不可比较的元素,会提示报错

6、集合的交集,并集,差集

union()

返回两个集合的并集。合并并去重
# union
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2))

# 输出结果
{1, 2, 3, 4, 5}

 

intersection()

返回两个集合的交集,共同的元素
intersectionset1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.intersection(set2))
# 输出结果{3}

 

difference()

从源集合中找出目标集合中没有的元素集合
a= {1, 2, 3, 4}
b = {2, 3, 5}
print(a.difference(b))
# 输出结果{1, 4}
 

day09练习

初级 1.创建一个空集合 2.声明一个集合computer,包含如下元素computer = {"apple", "xiaomi", "huawei"} 3.计算2题中集合的长度并且打印输出 4.添加"vivo"到集合computer中 5.一次添加"oppo","meizu"到集合computer中 6.使用两种方法在集合computer移除一家公司,remove()discard(),两者之间有什么不同?   中级 有a集合和b集合,信息如下:
string1 = "hello"
string2 = "world"
1.连接a集合和b集合,并输出新集合 2.找出a集合和b集合的交集 3.找出a集合在b集合中没有的集合元素     高级 1.有如下两个字符串,找出如下字符串中共同包含的字符,输出打印
string1 = "hello"
string2 = "world"

 

2.有如下字符串,找出该字符串唯一的单词集合,并且输出唯一的单词列表
string = 'I am astring and I am anotherstring and I am the laststring'

 

3.有如下列表,找好该列表中每个元素及其出现的次数。(可学完循环和判断在做该题) List = [1, 2, 2, 3, 3, 3, 4, 5]   要求:以字典的形式输出,比如输出:{1: 3, 2: 1, 3: 2}              

标签:输出,day09,set,元素,print,集合,my
From: https://www.cnblogs.com/nuomituan/p/17980698

相关文章

  • 集合进阶
    集合进阶集合体系结构​ List->ArrayList,LinkedList,Collection<​ Set->HashSet(->LinkedHashSet),TreeSet,List系列集合:添加的元素是有序,可重复,有索引.Set系列集合:添加的元素是无序,不重复,无索引.单列集合CollectionCollection是......
  • 传入一个List集合,返回分页好的数据
    传入一个List集合,返回分页好的数据。定义分页信息类:packagecom.cn.common;importjava.util.List;publicclassCommonPage<T>{privateintcurrentPage;privateinttotalPage;privateintpageSize;privatejava.util.List<T>list;publ......
  • 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象
    快速对比两个list数据集合此文引用csdn:https://blog.csdn.net/Zhu_daye/article/details/104798410小批量、快速对比两个list数据集合usingSystem.Linq.Expressions;Main();voidMain(){//对比源集合varsource=GenerateStudent(1,10000,1000);//......
  • shiro实现用户踢出,在线用户列表展示功能,包含常见踩坑集合、代码下载
    功能描述:用户a登录了s账号,接着用户b也登录了s账号,此时用户a将被踢出。一个账号只能一个人登录,被别人登录了,那么你就要被踢下线。本文目录shiro认证与授权理解实现需求核心以下是实现shiro用户踢出KickOutListener(登录成功后加入业务逻辑)kickOutFilter(进入controller的初级验证)配置......
  • trick 集合
    trick集合1.基础判断是否\(\foralli\)有\(x<a_i\):转化为是否\(x<\min(a_i)\)。大于类似。P9868&题解,ABC223F&题解括号序列:是括号序列的条件:总共的左括号和右括号数量相等;任意前缀的左括号数量\(\ge\)右括号数量。若将序列中左括号看作......
  • Rust 常见集合
    目录使用Vector储存列表新建vectorVec::new函数(无初值)vec!宏(有初值)更新vector读取vector的元素注意可变和不可变引用遍历vector中的元素使用枚举来储存多种类型丢弃vector时也会丢弃其所有元素使用字符串储存UTF-8编码的文本什么是字符串?新建字符串更新字符串使......
  • EasyExcel读取指定列数据返回集合
    有些时候我们只需要获取Excel中的某一列数据使用,我们就可以将这一列数据读取到集合中以便于后续操作。1、引入依赖<!--easyexcel--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><......
  • Java Collections.frequency()方法返回集合中指定元素个数
    JavaCollections.frequency()方法具有什么功能呢?下文笔者讲述Collections.frequency()方法的功能简介说明,如下所示:Collections.frequency()方法的功能:返回一个int值,其值给指定对象在集合中出现的次数Collections.frequency()方法的语法publicstaticintfreque......
  • 性能篇:List集合遍历元素用哪种方式更快?
    嗨大家好,我是小米!今天给大家分享一篇关于Java集合框架性能的文章,话题是:“如果让你使用for循环以及迭代循环遍历一个ArrayList,你会使用哪种方式呢?原因是什么?LinkedList呢?”废话不多说,让我们直入主题!ArrayList的get元素源码介绍ArrayList,作为Java集合框架中的一个重要类,是基于数组......
  • Python列表差异值统计:集合操作、列表推导式、对称差集详解
     在Python中,统计两个列表的差异值有多种方法,其中包括使用集合操作、列表推导式等。下面我将通过实例详细讲解几种常见的方法,并提供相应的实例源代码。方法一:使用集合操作list1=[1,2,3,4,5]list2=[3,4,5,6,7]#找到在list1中而不在list2中的元素difference1......