当前位置: 首页 > news >正文

【卡码网Python基础课 17.判断集合成员】

目录

  • 题目描述与分析
  • 一、集合
  • 二、集合的常用方法
  • 三、代码编写


题目描述与分析

题目描述:
请你编写一个程序,判断给定的整数 n 是否存在于给定的集合中。

输入描述:
有多组测试数据,第一行有一个整数 k,代表有 k 组测试数据。
每组数据第一行首先是一个正整数 m,表示集合中元素的数量(1 <= m <= 1000)。
接下来一行包含 m 个整数,表示集合中的元素。
最后一行包含一个整数 n,表示需要进行判断的目标整数。

输出描述:
包含多组输出,每组输出占一行。
如果集合中存在 m,输出“YES”,否则输出“NO”。

输入示例:

2
5
1 2 3 4 5
3
6
1 2 3 4 5 6
7

输出示例:

YES
NO

一、集合

在Python中,集合(set)是一个无序的数据结构,用于存储唯一的元素。集合是基于哈希表实现的,因此它支持高效的成员检查、添加和删除操作。集合非常适合用于去除重复项、进行集合运算如并集、交集、差集和对称差集。

可以使用花括号 {} 或 set() 函数来创建集合:

# 使用花括号创建集合
my_set = {1, 2, 3, 4, 5}
print(my_set)# 使用set()函数创建集合,通常用于将列表转换为集合
my_list = [1, 2, 2, 3, 4]
my_set = set(my_list)
print(my_set)  # 输出 {1, 2, 3, 4}

集合最常见的用法是判断某个元素是否在集合中和去除集合中的重复元素。

判断某个元素是否在集合中可以使用in关键字

my_set = {"Tom", "Jerry", "Mike"}
# 判断元素是否在集合中
if "Tom" in my_set:# 集合用于存储一组不重复的元素,可以自动去重
my_list = [1, 2, 3, 3, 4, 5, 5]
my_set = set(my_list)  # 将列表转换为集合,去除重复元素
unique_list = list(my_set)  # 将集合转换回列表, 此时列表是[1,2,3,4,5]

类似于数学中的操作,集合还支持求并集、交集、差集、对称差集。

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}# 交集
print(a & b)  # 输出 {3, 4}
print(a.intersection(b))  # 同上# 并集
print(a | b)  # 输出 {1, 2, 3, 4, 5, 6}
print(a.union(b))  # 同上# 差集
print(a - b)  # 输出 {1, 2}
print(a.difference(b))  # 同上# 对称差集(元素在a或b中,但不会同时出现在二者中)
print(a ^ b)  # 输出 {1, 2, 5, 6}
print(a.symmetric_difference(b))  # 同上

二、集合的常用方法

除了以上两种常见的操作,set还提供了一些常见方法方便使用,主要包括的就是集合的增删和遍历操作。

1.添加元素:使用add()方法可以向集合中添加单个元素。
2.移除元素:使用remove()或者discard()方法可以从集合中移除指定元素, 它们之间的区别在于当移除一个集合中不存在的元素时,remove()会引起异常,而discard()不会。
3.集合长度:使用len()函数可以获取集合的元素个数。
4.清空集合:使用clear()方法可以清空集合中的所有元素。
5.遍历集合:使用for循环可以遍历集合中的元素。

# 创建集合
set1 = {1, 2, 3}# 向集合添加元素
set1.add(4)# 遍历集合
for element in set1:print(element)# 移除集合元素
set1.remove(3)# 获取集合长度
print(len(set1))# 清空集合中的元素
set1.clear()

三、代码编写

根据题目要求,首先需要读取k,表示测试用例的数量,然后迭代k次

k = int(input())  # 读取测试用例的数量for _ in range(k):

遍历 k 组数据,每组数据第一行首先是一个正整数 m, 表示集合中元素的数量

m = int(input())  # 读取集合中元素的数量

类似于列表的读取,这里需要读取一行作为字符串,将之拆分成列表,并转为整数,最后使用set()转换成整数集合

elements = set(map(int, input().split()))  # 读取集合中的元素,用空格分隔并转换为整数集合

最后一行包含一个整数 n,表示需要进行判断的目标整数,可以使用in进行判断,如果在集合中,输出Yes, 如果不在集合中,输出No

n = int(input())  # 读取需要判断的目标整数
# in 判断 目标整数 是否在集合中
if n in elements:print("YES")
else:print("NO")

完整代码如下:

k = int(input())  # 读取测试用例的数量for _ in range(k):m = int(input())  # 读取集合中元素的数量elements = set(map(int, input().split()))  # 读取集合中的元素,用空格分隔并转换为整数集合n = int(input())  # 读取需要判断的目标整数if n in elements:print("YES")else:print("NO")
http://www.lryc.cn/news/427040.html

相关文章:

  • 生物研究新范式!AI语言模型在生物研究中的应用
  • python语言day08 属性装饰器和property函数 异常关键字 约束
  • day01JS-数据类型-01
  • MATLAB 手动实现一种高度覆盖值提取建筑物点云的方法(74)
  • git的下载与安装(Windows)
  • 腾讯云AI代码助手 —— 编程新体验,智能编码新纪元
  • 使用 ESP32 和 TFT 屏幕显示实时天气信息 —— 基于 OpenWeatherMap API
  • 高阶数据结构——B树
  • Vue2中watch与Vue3中watch对比和踩坑
  • 在Java程序中执行Linux命令
  • 微信小程序在不同移动设备上的差异导致原因
  • 快速体验fastllm安装部署并支持AMD ROCm推理加速
  • 报错:java: javacTask: 源发行版 8 需要目标发行版 1.8
  • 【数据结构篇】~单链表(附源码)
  • 旋转图像(LeetCode)
  • 入门 - vue中v-model的实现原理和完整用法详解
  • 【区块链+金融服务】港融区域股权服务平台 | FISCO BCOS应用案例
  • Nginx反向代理和前后端分离项目打包部署
  • Spring 中ApplicationContext
  • python之时间 datetime、date、time、timedelta、dateutil
  • 【机器学习第11章——特征选择与稀疏学习】
  • LeetCode-day43-3137. K 周期字符串需要的最少操作次数
  • 基于springboot的智能家居系统
  • 【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(七)
  • C:每日一练:单身狗(2.0版本)
  • 打破接口壁垒:适配器模式让系统无缝对接
  • U-Boot 命令使用
  • 谷歌的高级指令有哪些
  • Redis操作--RedisTemplate(一)介绍
  • GitLab环境搭建