实验5 Python容器数据类型:字典和集合

实验目的

  1. 掌握Python中字典的用法
  2. 掌握Python中集合的用法
  3. 能够使用字典和集合编写较复杂程序

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值