Python 实验五 字典与集合

时间:2025-04-15 17:40:10

 

一、实验目的

1、  巩固列表的创建、增删改查和元组的创建、查询访问。

2、 掌握字典的创建方法。

3、 掌握字典的访问与修改。

4、 掌握字典的添加、删除方法。

5、 掌握集合的创建方法。

6、 掌握集合元素添加和删除方法,掌握集合运算方法。

二、实验要求

  1. 每道题都需要提交源代码,提交结果截图,截图务必清晰。
  2. 运行如果有错,请分析出错原因。

三、实验内容

1、编写程序,从键盘输入一个具有重复元素的字符串列表,删除该列表中的所有重复字符串元素。

2、输入一行字符,统计出每个字符的出现个数。

3、请输入10个学生的百分制成绩,将成绩存放在列表中,并统计优(90~100)、良(80~89)、中(60~79)、差(0~59)四个等级的人数,输出由等级和人数构成的字典。

4、编写程序,输出由3,4,5,7这4个数字组成的四位数的素数,并且在每个素数中每个数字只使用一次。

list_1 = list(map(int, input("输入用空格分隔的数字:").split()))
list_2 = []
# 从键盘输入一个列表
print("去重前:", list_1)
for i in range(0, len(list_1)):
    # 确定循环次数
    if list_1[i] not in list_2:
        # 进行判断 i 是否在 2 中 去重操作
        list_2.append(list_1[i])
print("去重后:", list_2)
list_1 = input("请输入字符 : ")
print(list_1)
letters = 0
space = 0
digit = 0
others = 0
for c in list_1:
    if ():
        letters += 1
    elif ():
        space += 1
    elif ():
        digit += 1
    else:
        others += 1
print('char=%d,space=%d,digit=%d,others=%d' % (letters, space, digit, others))
list_1 = list(map(int, input("请输入学生成绩用空格分隔:").split()))
# 从键盘输入一个列表
a = 0  # 优的人数
b = 0  # 良的人数
c = 0  # 中的人数
d = 0  # 差的人数

print("成绩统计总表:", list_1)
for i in range(0, len(list_1)):
    # 确定循环次数
    if list_1[i] >= 90:
        a += 1
    if 80 <= list_1[i] <= 89:
        b += 1
    if 60 <= list_1[i] <= 79:
        c += 1
    if 0 <= list_1[i] <= 59:
        d += 1
e = {'优': a, "良": b, "中": c, "差": d}
print("统计结果 :")
print("优 :", e["优"])
print("良 :", e["良"])
print("中 :", e["中"])
print("差 :", e["差"])
def re_list():
    list_1 = [3, 4, 5, 7]
    list_2 = []
    for a in list_1:
        for b in list_1:
            if a == b:
                continue
            for c in list_1:
                if (a == c) or (b == c):
                    continue
                for d in list_1:
                    if (a == d) or (b == d) or (c == d):
                        continue
                    # 反复比较 将 a b c d 赋上不同的值 a作为千位 b作为百位 c作为十位 d作为个位
                    result = 1000 * a + 100 * b + 10 * c + d
                    list_2.append(result)
    return list_2


prime_list = [p for p in re_list() if 0 not in [p % d for d in range(2, int(p ** 0.5 + 1))]]
#  判断是否为素数
# number = []
# for p in range(2, maxNumber):
#    z = True
#   for d in range(2, int(p**0.5)+1):
#        if p % d == 0:
#            z = False
#            break
#    if z:
#        (p)
print(prime_list)