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

卡码网语言基础课(Python) | 17.判断集合成员

判断集合成员

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

一、题目描述

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

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

二、集合

集合也是一种数据结构,和数学中的集合类似,它用于存储一组不重复的元素,并且不保证元素的顺序。查找通常是集合最重要的操作。
在Python中,你可以使用大括号{}创建集合,元素与元素之间使用逗号,分隔。

# 创建集合
my_set = {1, 2, 3}

或者你可以使用set()函数创建集合,或者是列表转为集合。

my_set1 = set([1, 2, 3])
# 创建空集合
my_set2 = set()

集合最常见的用法是判断某个元素是否在集合中和去除集合中的重复元素。
判断某个元素是否在集合中可以使用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]

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

set1 = {1, 2, 3}
set2 = {3, 4, 5}
u_set = set1 | set2   # 并集,现在集合是{1, 2, 3, 4, 5}
i_set = set1 & set2   # 交集,现在集合是{3}
d_set = set1 - set2   # 差集,表示存在于集合1中,但不存在于集合2中的元素{1, 2}

三、集合的常用方法

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

  • 添加元素:使用add()方法可以向集合中添加单个元素。
  • 移除元素:使用remove()或者discard()方法可以从集合中移除指定元素,它们之间的区别在于当移除一个集合中不存在的元素时,remove()会引起异常,而discard()不会。
  • 集合长度:使用len()函数可以获取集合的元素个数。
  • 清空集合:使用clear()方法可以清空集合中的所有元素。
  • 遍历集合:使用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())
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.dtcms.com/a/512456.html

相关文章:

  • 温州专业网站建设成都营销推广公司
  • 淘客做网站还是做app佛山seo网站优化
  • 组合数常见的四种计算方法
  • 美容医疗服务小程序:功能集成,解锁一站式变美新体验
  • 网站建设的展望 视频搭建公司内部网站
  • Mac 从零开始配置 VS Code + Claude/Codex AI 协同开发环境教程
  • 鸿蒙flutter 老项目到新项目的遇到迁移坑点
  • 网站开发z亿玛酷1专注响应式官网设计
  • SD comfy:教程3 - 音频生成
  • 百度网盘登录福建键seo排名
  • Xshell效率实战系列一:内置Xftp快速启动——从1分钟到10秒的传输革命
  • 公路建设网站自己编写网站
  • EN 13986:2004+A1:2015 人造板检测
  • 酒店网站html模板长沙微信网站建设
  • 天河建设网站技术网站备案号密码
  • 步进电机(200 smart DM542)调试文档
  • ubuntu22 docker安装ros1 noetic
  • 惠州网站制作定制和平天津网站建设
  • 电子网站建设价格怎样建立自己网站多少钱
  • 鸿蒙开发的三种能力集以及错误的产生条件
  • 西陆房产系统小程序
  • 方正悠黑使用网站建设侵权么触屏手机网站
  • ELK运维之路(Logstash-高级功能-7.17.24)
  • Harmony鸿蒙开发0基础入门到精通Day02--JavaScript篇
  • k8s部署容器化应用-nginx
  • Linux 根分区爆满排查与解决
  • 南阳东莞网站建设公司天津中冀建设集团有限公司网站
  • linux下虚拟机下安装一个本地yum源
  • SSH密钥认证:从密码到密钥的安全升级指南
  • 企业网站建设平台求职简历模板免费