水墨 网站源码,工装,wordpress博客百度收录,烟台门户网站建设第3周 Python字典、集合刷题
单击题目#xff0c;直接跳转到页面刷题#xff0c;一周后公布答案。
B2125#xff1a;最高分数的学生姓名28#xff1a;返回字典的键值75#xff1a;字符串转字典77#xff1a;映射字符串中的字母87#xff1a;按条件过滤字典B3632#…第3周 Python字典、集合刷题
单击题目直接跳转到页面刷题一周后公布答案。
B2125最高分数的学生姓名28返回字典的键值75字符串转字典77映射字符串中的字母87按条件过滤字典B3632集合运算 141单词相同字符数42嵌套元组唯一元素47字符串中缺失的字母83测试子字符串
1. B2125最高分数的学生姓名
题目描述
输入学生的人数然后再输入每位学生的分数和姓名求获得最高分数的学生的姓名。
输入格式
第一行输入一个正整数 N N N N ≤ 100 N \le 100 N≤100表示学生人数。
接着输入 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(), keylambda 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
5Five 6Six 7Seven样例输出 #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]}解释: 给定字符串中的唯一字母是piea和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}解释: 在输出中过滤后的字典包含一个大于3k的输入值的整数值以及一个不是整数的值yellow。 参考源码
def filter_dict_values(mixed_dict, k):# 此处写下你的代码 dic {x:y for x, y in mixed_dict.items() if type(y)!int or yk}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 a∈A反之则记作 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 a∈C有 a ∈ A a\in A a∈A 且 a ∈ B a\in B a∈B并且对于任何元素 b ∉ C b\notin C b∈/C有 b ∉ A b\notin A b∈/A 或 b ∉ B b\notin B b∈/B。记作 C A ∩ B CA\cap B CA∩B。
集合 C C C 是集合 A A A 与 B B B 的并集当且仅当对于任何元素 a ∈ C a\in C a∈C有 a ∈ A a\in A a∈A 或 a ∈ B a\in B a∈B并且对于任何元素 b ∉ C b\notin C b∈/C有 b ∉ A b\notin A b∈/A 且 b ∉ B b\notin B b∈/B。记作 C A ∪ B CA\cup B CA∪B。
简单地说交集是由所有同时属于两个集合的元素所构成的就像两个集合相交而并集是由所有属于其中任意一个集合的元素所构成的就像两个集合合并。
特别地对于形如 { x ∣ a ≤ x ≤ b } \{x|a\le x\le b\} {x∣a≤x≤b} 的集合可以记作 [ 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 A∩B A ∪ B A\cup B A∪B
输入格式
输入四行。
第一行一个整数 x ( 0 ≤ x ≤ 63 ) x(0\le x \le 63) x(0≤x≤63)表示集合 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(0≤y≤63)表示集合 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 A∩B 中对应元素从小到大输出用空格隔开。如果是空集则这一行什么也不输出保留换行。
第三行输出若干个整数表示 A ∪ B A\cup B A∪B 中对应元素从小到大输出用空格隔开。如果是空集则这一行什么也不输出保留换行。
样例 #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))