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

第3周 Python字典、集合刷题

第3周 Python字典、集合刷题

单击题目,直接跳转到页面刷题,一周后公布答案。

  1. B2125:最高分数的学生姓名
  2. 28:返回字典的键值
  3. 75:字符串转字典
  4. 77:映射字符串中的字母
  5. 87:按条件过滤字典
  6. B3632:集合运算 1
  7. 41:单词相同字符数
  8. 42:嵌套元组唯一元素
  9. 47:字符串中缺失的字母
  10. 83:测试子字符串

1. B2125:最高分数的学生姓名

题目描述

输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。

输入格式

第一行输入一个正整数 N N N N ≤ 100 N \le 100 N100),表示学生人数。

接着输入 N N N 行,每行包括两个整数,代表分数姓名。

分数是一个非负整数,且小于等于 100 100 100

姓名为一个连续的字符串,中间没有空格,长度不超过 20 20 20

数据保证所有同学的姓名都不同,而且最高分只有一位同学。

输出格式

获得最高分数同学的姓名。

样例输入 #1

5
87 lilei
99 hanmeimei
97 lily
96 lucy
77 jim

样例输出 #1

hanmeimei

提示

hanmeimei 的分数最高 99 99 99 分。
参考源码:

n = int(input())
dic = {}
for i in range(n):score, name = input().split()dic[int(score)] = name
print(dic[max(dic)])

2. 28:返回字典的键值

题目描述

编写一个程序,分别按字母顺序返回字典的键和值。
定义函数get_sorted_keys_values(),参数为dict_obj(字典类型)。
在函数内部,返回一个由两个列表组成的列表:一个列表是按字母顺序排列的字典键,另一个列表是它们对应的值。

样例输入 #1

{"john": 1, "peter": 2, "adam": 3}

样例输出 #1

[['adam', 'john', 'peter'], [3, 1, 2]]

参考源码:

def get_sorted_keys_values(dict_obj):# 此处写你的代码list1 = sorted(dict_obj.items(), key=lambda x: x[0])a = [x for (x, y) in list1]b = [y for (x, y) in list1]return [a, b]# 获取用户输入转为字典
dictionary = eval(input())# 调用函数
print(get_sorted_keys_values(dictionary))

3. 75:字符串转字典

题目描述

编写一个程序将字符串转换为字典。
定义函数convert_str_list_to_dict(),参数为str_list(输入的字符串)。
在函数内部,创建一个字典,其中每个字符串使用=进行分割,第一部分为键,第二部分为值。返回字典。

样例输入 #1

5=Five 6=Six 7=Seven

样例输出 #1

{'5': 'Five', '6': 'Six', '7': 'Seven'}

参考源码:

def convert_str_list_to_dict(str_list):# 此处编写代码 list1 = str_list.split()dic = {}for s in list1:a, b = s.split('=')dic[a] = breturn dic
# 输入字符串 
str_list = input()# 调用函数 
print(convert_str_list_to_dict(str_list))

4. 77:映射字符串中的字母

题目描述

编写一个程序,创建一个字典,其中给定单词的每个唯一字母表示一个键,值为字母出现的索引的列表。
定义函数letter_indices(),参数为word(字符串)。
在函数中,创建一个字典,其中键是单词中的唯一字母,值是包含该字母出现的索引的列表。返回该字典。

样例输入 #1

pineapple

样例输出 #1

{'p': [0, 5, 6], 'i': [1], 'n': [2], 'e': [3, 8], 'a': [4], 'l': [7]}

解释:
给定字符串中的唯一字母是p,i,e,a和l,它们是字典的键。 而键的值是它们出现的索引(注意索引从0开始)。
参考源码:

def letter_indices(word):# 此处编写代码 dic = {}for i in range(len(word)):if dic.get(word[i]) == None:dic[word[i]] = [i]else:ls = dic.get(word[i])ls.append(i)dic[word[i]] = lsreturn dic
# 获取输入 
word = input()# 调用函数 
print(letter_indices(word))

5. 87:按条件过滤字典

题目描述

编写一个程序,根据某个条件过滤字典值。
对于这个挑战,条件是字典值应该大于整数k。
定义函数filter_dict_values(),有两个参数:字典mixed_dict和整数k。
在函数内部,创建一个新字典,并从mixed_dict过滤值不是整数或大于整数k的键值对,然后存储到新字典中。返回新字典。

样例输入 #1

{'cat': 2, 'dog': 5, 'parrot': 'yellow', 'fish': 1}
3

样例输出 #1

{'dog': 5, 'parrot': 'yellow'}

解释:
在输出中,过滤后的字典包含一个大于3(k的输入值)的整数值,以及一个不是整数的值yellow。
参考源码:

def filter_dict_values(mixed_dict, k):# 此处写下你的代码 dic = {x:y for x, y in mixed_dict.items() if type(y)!=int or y>k}return dic
# 获取输入 
user_dict = eval(input())
user_k = int(input())# 调用函数 
print(filter_dict_values(user_dict, user_k))

6. B3632:集合运算 1

题目背景

集合是数学中的一个概念,用通俗的话来讲就是:一大堆数在一起就构成了集合。
集合有如下的特性:

  • 无序性:任一个集合中,每个元素的地位都是相同的,元素之间是无序的。
  • 互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。
  • 确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现。
    元素 a a a 属于集合 A A A 记作 a ∈ A a\in A aA,反之则记作 a ∉ A a\notin A a/A
    若一个集合中不存在任何元素,则称该集合为空集,记作 ∅ \varnothing 。空集是所有集合的子集。

一个集合内的元素个数称为该集合的大小。 A A A 集合的大小可记作 ∣ A ∣ |A| A

集合 C C C 是集合 A A A B B B 的交集,当且仅当对于任何元素 a ∈ C a\in C aC,有 a ∈ A a\in A aA a ∈ B a\in B aB,并且对于任何元素 b ∉ C b\notin C b/C,有 b ∉ A b\notin A b/A b ∉ B b\notin B b/B。记作 C = A ∩ B C=A\cap B C=AB

集合 C C C 是集合 A A A B B B 的并集,当且仅当对于任何元素 a ∈ C a\in C aC,有 a ∈ A a\in A aA a ∈ B a\in B aB,并且对于任何元素 b ∉ C b\notin C b/C,有 b ∉ A b\notin A b/A b ∉ B b\notin B b/B。记作 C = A ∪ B C=A\cup B C=AB

简单地说,交集是由所有同时属于两个集合的元素所构成的,就像两个集合相交;而并集是由所有属于其中任意一个集合的元素所构成的,就像两个集合合并。

特别地,对于形如 { x ∣ a ≤ x ≤ b } \{x|a\le x\le b\} {xaxb} 的集合,可以记作 [ a , b ] [a,b] [a,b]。其中,如果左侧符号改为小于号,则左侧中括号改为小括号。右侧同理。

题目描述

现在给予两个集合 A A A B B B,均由 0 0 0 63 63 63 之间的整数组成。

请依次求出:

  • ∣ A ∣ |A| A
  • A ∩ B A\cap B AB
  • A ∪ B A\cup B AB

输入格式

输入四行。

第一行一个整数 x ( 0 ≤ x ≤ 63 ) x(0\le x \le 63) x(0x63),表示集合 A A A 的元素个数。

第二行 x x x 个整数 a 1 , . . . a x a_1,...a_x a1,...ax,表示集合 A A A 的各个元素,保证不重复。如果 A A A 是空集,则这一行没有数字。

第三行一个整数 y ( 0 ≤ y ≤ 63 ) y(0\le y \le 63) y(0y63),表示集合 B B B 的元素个数。

第四行 y y y 个整数 b 1 , . . . b x b_1,...b_x b1,...bx,表示集合 B B B 的各个元素,保证不重复。如果 B B B 是空集,则这一行没有数字。

输出格式

输出三行。

第一行输出一个整数,表示 ∣ A ∣ |A| A

第二行输出若干个整数,表示 A ∩ B A\cap B AB 中对应元素,从小到大输出,用空格隔开。如果是空集,则这一行什么也不输出,保留换行。

第三行输出若干个整数,表示 A ∪ B A\cup B AB 中对应元素,从小到大输出,用空格隔开。如果是空集,则这一行什么也不输出,保留换行。

样例 #1

样例输入 #1

4
1 3 5 8
3
3 6 8

样例输出 #1

4
3 8
1 3 5 6 8

样例 #2

样例输入 #2

04
1 2 3 4

样例输出 #2

01 2 3 4

参考源码:

n = int(input())
a = set(map(int, input().split()))
m = int(input())
b = set(map(int, input().split()))
x = a & b
y = a | b
s1 = s2 = ''
if x:s1 = sorted(list(x))
if y:s2 = sorted(list(y))
print(n)
print(*s1)
print(*s2)

7. 41:单词相同字符数

题目描述

编写一个程序来计算两个给定单词之间相同字符的数量。
需要考虑字符是区分大小写的(即a和A是不同的字符)。
例如,单词cookie和cool有两个字符相同:c和o。因此,输出应该是2。
另一方面,单词Blow和beer没有相同的字符,因为B和b视为不同的字符。
定义函数shared_chars_count(),有两个参数:word1和word2。
该函数应返回两个单词中相同字母的数量。

样例输入 #1

cookie
cool

样例输出 #1

2

参考源码:

def shared_chars_count(word1, word2):# 此处编写代码set1 = set(word1) & set(word2)return len(set1)
# 获取输入
word1 = input()
word2 = input()# 调用函数
print(shared_chars_count(word1, word2))

8. 42:嵌套元组唯一元素

题目描述

编写一个程序来提取嵌套元组中的唯一元素。
例如,在嵌套元组((1,2,3),(2,4,6),(2,3,5))中,2重复出现了3次,3重复出现了2次,但我们的输出列表只会包含2、3一次。即:[1, 2, 3, 4, 5, 6]

  • 定义函数get_unique_elements(),函数接受一个参数 - 一个包含三个元组的嵌套元组。
  • 在函数内,提取所有元组中的独立元素,确保不重复提取元素。
  • 以列表的形式返回唯一的元素,并从小到大排序。

样例输入 #1

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

样例输出 #1

[1, 2, 3, 4, 5, 6]

参考源码:

def get_unique_elements(nested_tuples):# 此处编写代码list1 = []for ls in nested_tuples:list1.extend(list(ls))list1 = list(set(list1))  # 集合,无序不能排序list1.sort()return list1
# 初始化嵌套元组
nested_tuples = []# 获取用户输入
for _ in range(3):tuple_elements = tuple(map(int, input().split()))nested_tuples.append(tuple_elements)# 调用函数
print(get_unique_elements(nested_tuples))

9. 47:字符串中缺失的字母

题目描述

编写一个程序,返回一个按字母顺序排序的字符串,其中包含给定字符串中不出现的所有小写字母。
定义函数get_missing_letters(),参数为word_string。
在函数内部,返回一个排序的字符串,其中包含不出现在word_string中的所以小写字母。
注意:假设用户只输入小写字母字符串作为输入。

样例输入 #1

stray

样例输出 #1

bcdefghijklmnopquvwxz

解释:

输入字符串"stray"包含英文字母表除"bcdefghijklmnopquvwxz"之外的所有字母。
参考源码:

import string
def get_missing_letters(word_string):# 此处编写你的代码 set1 = set(string.ascii_lowercase) - set(word_string)list1 = list(set1)# list1 = [ch for ch in string.ascii_lowercase if ch not in word_string]# s = ''.join(sorted(list1))return s
# 获取输入的字符串 
word_string = input()# 调用函数输出结果 
print(get_missing_letters(word_string))

10. 83:测试子字符串

题目描述

编写一个程序来检查给定的字符串是否为另一个字符串的子集。
定义函数is_subset(),有两个参数:sub_string和main_string(均是字符串)。
在函数内,如果sub_string是main_string的子集,则返回True,否则返回False。
例如,abc是abracadabra的子集,因为abc中的每个字符都在abracadabra中出现。

样例输入 #1

march
charming

样例输出 #1

True

参考源码:

def is_subset(sub_string, main_string):# 在此处编写你的代码set1 = set(sub_string)set2 = set(main_string)return set1.issubset(set2)
# 获取用户输入
sub_string = input()
main_string = input()# 调用函数
print(is_subset(sub_string, main_string))

相关文章:

第3周 Python字典、集合刷题

第3周 Python字典、集合刷题 单击题目,直接跳转到页面刷题,一周后公布答案。 B2125:最高分数的学生姓名28:返回字典的键值75:字符串转字典77:映射字符串中的字母87:按条件过滤字典B3632&#…...

文字校对的首选——爱校对:用户真实反馈汇编

在今日快节奏、高标准的工作环境下,准确与效率成为了每位专业人士追求的双重目标。不论是在政府机构、学术领域、企业界,还是在自由职业者的行列中,我们都面临着同一个挑战:如何在保持工作速度的同时,确保每一份文档的…...

Llama-3即将发布:Meta公布其庞大的AI算力集群

Meta,这家全球科技巨头,再次以其在人工智能(AI)领域的雄心壮志震惊了世界。3月13日,公司在其官方网站上宣布了两个全新的24K H100 GPU集群,这些集群专为训练其大型模型Llama-3而设计,总计拥有高…...

【JAVA】Date、LocalDate、LocalDateTime 详解,实践应用

Date、LocalDate、LocalDateTime 详解,实践应用 一、Date、LocalDate 简介1、 java.util.Date:2、 java.time.LocalDateTime:3、 java.time.LocalDate: 二、输出格式1、使用 java.util.Date 的示例代码如下:2、使用 ja…...

分布式链路追踪(一)SkyWalking(1)介绍与安装

一、介绍 1、简介: 2、组成 以6.5.0为例,该版本下Skywalking主要分为oap、webapp和agent三部分,oap和webapp分别用于汇总数据和展示,这两块共同组成了Skywalking的平台;agent是探针,部署在需要收集数据的…...

蓝桥杯历年真题省赛之 2016年 第七届 生日蜡烛

一、题目 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来,他一共吹熄了236根蜡烛。 请问,他从多少岁开始过生日party的? 请填写他开始过生日party的年龄数。 注意&…...

SCAU 8580 合并链表

8580 合并链表 时间限制:1000MS 代码长度限制:10KB 提交次数:3724 通过次数:2077 题型: 编程题 语言: G;GCC Description 线性链表的基本操作如下&#xff1a; #include<stdio.h> #include<malloc.h> #define ERROR 0 #define OK 1 #define ElemType inttyped…...

Docker安装Gitlab

下载镜像 直接下载最新版&#xff0c;比较大有2.36G docker pull gitlab/gitlab-ce创建数据存放的目录位置 按自己习惯位置创建目录 mkdir -p /usr/local/docker/docker_gitlab编写docker-compose.yml 在上面创建的挂载目录里面&#xff08;/usr/local/docker/docker_gitl…...

浅淡 C++ 与 C++ 入门

我们知道&#xff0c;C语言是结构化和模块化的语言&#xff0c;适用于较小规模的程序。而当解决复杂问题&#xff0c;需要高度抽象和建模时&#xff0c;C语言则不合适&#xff0c;而C正是在C的基础之上&#xff0c;容纳进去了面向对象编程思想&#xff0c;并增加了许多有用的库…...

学习和认知的四个阶段,以及学习方法分享

本文分享学习的四个不同的阶段&#xff0c;以及分享个人的一些学习方法。 一、学习认知的四个阶段 我们在学习的过程中&#xff0c;总会经历这几个阶段&#xff1a; 第一阶段&#xff1a;不知道自己不知道&#xff1b; 第二阶段&#xff1a;知道自己不知道&#xff1b; 第三…...

Python编程从入门到实践中的一些误区

1.num 使用num时python报错&#xff0c;后来查过后才知道是因为python不支持自增或自减&#xff0c;可以用1。 2.字符串和非字符串连接 要先将非字符串转换为字符串类型之后才能连接 print&#xff08;2int&#xff08;‘2’&#xff09;&#xff09;#4 3.关键字参数必须在未…...

Kanebo HITECLOTH 高科技擦镜布介绍

Kanebo HITECLOTH&#xff0c;这款由日本KBSeiren公司制造的高科技擦镜布&#xff0c;以其卓越的清洁能力和超柔软的布质&#xff0c;成为了市场上备受瞩目的产品。 材质与特性 HITECLOTH采用0.1旦尼尔特级高级微纤维制造&#xff0c;质地细致、坚韧、不起颗粒。这种纤维的特…...

政务云安全风险分析与解决思路探讨

1.1概述 为了掌握某市政务网站的网络安全整体情况&#xff0c;在相关监管机构授权后&#xff0c;我们组织人员抽取了某市78个政务网站进行安全扫描&#xff0c;通过安全扫描&#xff0c;对该市政务网站的整体安全情况进行预估。 1.2工具扫描结果 本次利用漏洞扫描服务VSS共扫…...

Linux tcpdump抓包转Wireshark 分析

简介 tcpdump 是Linux系统下的一个强大的命令&#xff0c;可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤&#xff0c;本文将展示如何使用 tcpdump 抓包&#xff0c;以及如何用 tcpdump 和 wireshark 分析网络流量 tcpdump指…...

【Spring高级】Aware与InitializingBean接口

目录 Aware接口概述为什么需要Aware接口 InitializingBean接口Autoware失效分析 Aware接口 概述 在Spring框架中&#xff0c;Aware 接口是一种常用的设计模式&#xff0c;用于允许bean在初始化时感知&#xff08;或获取&#xff09;Spring容器中的某些资源或环境信息。这些接…...

打造你的HTML5打地鼠游戏:零基础入门教程

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…...

C++默认构造函数/拷贝构造函数/赋值构造函数

概述 本文主要讲解C默认构造函数&#xff0c;拷贝构造函数和赋值构造函数在哪些场景下会被调用到 代码 类定义 class A{public:A() { cout<<"construct function"<<endl; }A(const A& other) { cout<<"copy construct function"…...

前端框架的发展历史介绍

前端框架的发展历史是Web技术进步的一个重要方面。从最初的简单HTML页面到现在的复杂单页应用程序&#xff08;SPA&#xff09;&#xff0c;前端框架和库的发展极大地推动了Web应用程序的构建方式。以下是一些关键的前端框架和库&#xff0c;以及它们的发布年份、创建者和主要特…...

Linux 基本命令

文章目录 1.echo2.cd3.find4.mkdir5.cp6.rm7.wc8.tar9.tail10.vim11.grep12.sed13 touch14 ls15 快捷键16 ln17 mv18 useradd19 usermod20 su 每天一个Linux命令 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 1.echo 中文 (Chinese): “回声” 或 “输…...

怎么查看电脑是不是固态硬盘?简单几个步骤判断

随着科技的发展&#xff0c;固态硬盘&#xff08;Solid State Drive&#xff0c;简称SSD&#xff09;已成为现代电脑的标配。相较于传统的机械硬盘&#xff0c;固态硬盘在读写速度、稳定性和耐用性等方面都有显著优势。但是&#xff0c;对于不熟悉电脑硬件的用户来说&#xff0…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

【Elasticsearch基础】Elasticsearch批量操作(Bulk API)深度解析与实践指南

目录 1 Bulk API概述 1.1 什么是批量操作 1.2 Bulk API的优势 2 Bulk API的工作原理 2.1 请求处理流程 2.2 底层机制 3 Bulk API的使用方法 3.1 基本请求格式 3.2 操作类型示例 3.3 响应格式 4 Bulk API的最佳实践 4.1 批量大小优化 4.2 错误处理策略 4.3 性能调…...

智能照明系统:具备认知能力的“光神经网络”

智能照明系统是物联网技术与传统照明深度融合的产物&#xff0c;其本质是通过感知环境、解析需求、自主决策的闭环控制&#xff0c;重构光与人、空间、环境的关系。这一系统由智能光源、多维传感器、边缘计算单元及云端管理平台构成&#xff0c;形成具备认知能力的“光神经网络…...

Python 解释器安装全攻略(适用于 Linux / Windows / macOS)

目录 一、Windows安装Python解释器1.1 下载并安装Python解释1.2 测试安装是否成功1.3 设置pip的国内镜像------永久配置 二、macOS安装Python解释器三、Linux下安装Python解释器3.1 Rocky8.10/Rocky9.5安装Python解释器3.2 Ubuntu2204/Ubuntu2404安装Python解释器3.3 设置pip的…...

.Net Framework 4/C# 面向对象编程进阶

一、继承 (一)使用继承 子类可以继承父类原有的属性和方法,也可以增加原来父类不具备的属性和方法,或者直接重写父类中的某些方法。 C# 中使用“:”来表示两个类的继承。子类不能访问父类的私有成员,但是可以访问其公有成员,即只要使用 public 声明类成员,就既可以让一…...