实验目的
- 掌握Python中字典的用法
- 掌握Python中集合的用法
- 能够使用字典和集合编写较复杂程序
1. 数字的出现次数
编写程序,读取未指定个数的整数,并找出出现次数最多的整数。例如,如果输入2 3 40 3 5 4 -3 3 3 2 0,那么3出现的次数最多。如果不止一个数字的出现次数最多,则这些数字都显示。例如:数字9和3在列表9 30 3 9 3 2 4都出现了2次,那么应当把它们都显示出来。
# 1. 数字的出现次数
# 编写程序,读取未指定个数的整数,并找出出现次数最多的整数。例如,如果输入2 3 40 3 5 4 -3 3 3 2 0,那么3出现的次数最多。如果不止一个数字的出现次数最多,则这些数字都显示。例如:数字9和3在列表9 30 3 9 3 2 4都出现了2次,那么应当把它们都显示出来。
li = map(int, input("请输入一些数字:").split())
cnt = {}
max_cnt = 0
# print(cnt.get(4, 0))
for x in li:
cnt[x] = cnt.get(x, 0) + 1
if cnt[x] > max_cnt:
max_cnt = cnt[x]
# print(max_cnt)
for key in cnt:
if max_cnt == cnt[key]:
print("数字{},出现了{}次".format(key, cnt[key]))
# print(li)
# print(cnt)
# 2 3 40 3 5 4 -3 3 3 2 0
# 9 30 3 9 3 2 4
2. 统计辅音和元音字母
编写一个程序提示用户输入一个字符串,统计字符串中辅音字母和元音字母的个数。
[提示]
元音字母有:a e i o u
[运行示例]
输入一个字符串:qwerdswr [按下回车]
辅音字母7个,元音字母1个
# 2. 统计辅音和元音字母
# 编写一个程序提示用户输入一个字符串,统计字符串中辅音字母和元音字母的个数。
str_input = input("输入一个字符串:")
use_alp = "aeiou"
x1 = 0
x2 = 0
for alp in str_input:
# print(alp)
if alp in use_alp:
x1 += 1
else:
x2 += 1
print("辅音字母{}个,元音字母{}个".format(x2, x1))
# [提示]
# 元音字母有:a e i o u
# [运行示例]
# 输入一个字符串:qwerdswr [按下回车]
# 辅音字母7个,元音字母1个
3. 统计成绩
编写一个程序,输入5个学生的姓名和成绩,按字典序排列学生的名字并输出,姓名和成绩对应关系保持不变。
[运行示例]
Mary 81, Bill 90, Tom 78, Tony 88, Amy, 93[按下回车]
Amy, 93
Bill, 90
Mary, 81
Tom, 78
Tony, 88
# 3. 统计成绩
# 编写一个程序,输入5个学生的姓名和成绩,按字典序排列学生的名字并输出,姓名和成绩对应关系保持不变。
str_input = map(str, input("输入5个学生的姓名和成绩:").split(", "))
# print(str_input)
students = {}
for stu in str_input:
name = stu.split()[0]
score = stu.split()[1]
students[name] = score
# print(students)
sorted_students = dict(sorted(students.items()))
for key in sorted_students:
print("{}, {}".format(key, students[key]))
# for x in sorted(students.items()):
# print(x[0], x[1])
# [运行示例]
# Mary 81, Bill 90, Tom 78, Tony 88, Amy 93[按下回车]
# Amy, 93
# Bill, 90
# Mary, 81
# Tom, 78
# Tony, 88
4. 统计单词出现的次数
编写一个程序,统计文本中单词出现的次数,并将单词和他们出现的次数按降序显示。
[提示]
使用一个字典来存储包含了单词和它的次数的条目。程序判断文件中的每个单词是否已经是字典中的一个关键字。如果不是,程序将添加一个条目,将这个单词作为该条目的关键字,并将它对应的值设置为1。否则,程序将该单词对应的值加1。
[运行示例]
输入一个句子: You are a clever boy. Ming is a clever boy too. [按下回车]
a 2
clever 2
boy 2
you 1
are 1
Xiaoming 1
is 1
too 1
# 4. 统计单词出现的次数
# 编写一个程序,统计文本中单词出现的次数,并将单词和他们出现的次数按降序显示。
str_input = input("输入一个句子:")
str_input = str_input.lower()
for ch in str_input:
if ch in ",.()!?+-*/":
str_input = str_input.replace(ch, ' ')
words = str_input.split()
count = {}
# print(words)
for word in words:
count[word] = count.get(word, 0) + 1
# print(count.items())
# print(sorted(count.items()))
for x in sorted(count.items()):
print(x[0], x[1])
# [提示]
# 使用一个字典来存储包含了单词和它的次数的条目。程序判断文件中的每个单词是否已经是字典中的一个关键字。如果不是,程序将添加一个条目,将这个单词作为该条目的关键字,并将它对应的值设置为1。否则,程序将该单词对应的值加1。
# [运行示例]
# 输入一个句子: You are a clever boy. Ming is a clever boy too. [按下回车]
# a 2
# clever 2
# boy 2
# you 1
# are 1
# Xiaoming 1
# is 1
# too 1