作业3 组合数据类型

  • 如a是一个列表,且a[:]与a[::-1]相等,则a中元素按顺序排列构成一个回文。T
  • 表达式 {1, 3, 2} > {1, 2, 3} 的值为True。F
  • 已知x为非空列表,那么执行语句x[0] = 3之后,列表对象x的内存地址不变。T
  • Python内置的集合set中元素顺序是按元素的哈希值进行存储的,并不是按先后顺序。T
  • 已知x是一个列表,那么x = x[3:] + x[:3]可以实现把列表x中的所有元素循环左移3位。T

    7-1 图的字典表示

    捕获.JPG

    有向图的字典表示。输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度。比如上图0点表示:
    {'O':{'A':2,'B':5,'C':4}}。用eval函数处理输入,eval函数具体用法见第六章内置函数。

    n=int(input())
    num=0
    sum=0
    for i in range(n):
        dic=eval(input())
        for j in dic:
            temp=dic[j]
            for key in temp:
                num+=1
                sum+=temp[key]
    print("{:d} {:d} {:d}".format(n,num,sum))
    7-2 jmu-python-逆序输出

    输入一行字符串,然后对其进行如下处理。

    输入格式:

    字符串中的元素以空格或者多个空格分隔。

    输出格式:

    逆序输出字符串中的所有元素。
    然后输出原列表。
    然后逆序输出原列表每个元素,中间以1个空格分隔。注意:最后一个元素后面不能有空格。

    s = list(input().split())
    t = s[::-1]
    print(''.join(t))
    print(s)
    print(*t)     #解包列表
    7-3 jmu-python-班级人员信息统计
    输入a,b班的名单,并进行如下统计。

    输入格式:

    第1行::a班名单,一串字符串,每个字符代表一个学生,无空格,可能有重复字符。
    第2行::b班名单,一串字符串,每个学生名称以1个或多个空格分隔,可能有重复学生。
    第3行::参加acm竞赛的学生,一串字符串,每个学生名称以1个或多个空格分隔。
    第4行:参加英语竞赛的学生,一串字符串,每个学生名称以1个或多个空格分隔。
    第5行:转学的人(只有1个人)。

    class_list1 = set(input())  # 记录一班学生信息
    class_list2 = set(input().split())   # 记录二班学生信息
    acm_list = set(input().split())  # 参加acm竞赛的学生
    english_list = set(input().split())  # 参加英语竞赛的学生
    student = input()
    class_lst = class_list1 | class_list2  # 两个班的总人数
    total_student = len(class_lst)
    norace_list = class_lst - acm_list - english_list  # 没有参加竞赛的学生
    race_list = acm_list | english_list  # 所有参赛
    race_all_list = acm_list & english_list  # 两个都参加
    race_acm_list = acm_list - english_list   # 只参加acm
    race_englist_list = english_list - acm_list   # 只参加英语
    race_one_list = race_list - race_all_list  # 只参加一个
    print(f'Total: {total_student}')
    print(f'Not in race: {sorted(norace_list)}, num: {len(norace_list)}')
    print(f'All racers: {sorted(race_list)}, num: {len(race_list)}')
    print(f'ACM + English: {sorted(race_all_list)}, num: {len(race_all_list)}')
    print(f'Only ACM: {sorted(race_acm_list)}')
    print(f'Only English: {sorted(race_englist_list)}')
    print(f'ACM Or English: {sorted(race_one_list)}')
    if student in class_list1:
        class_list1.remove(student)
        print(sorted(class_list1))
    elif student in class_list2:
        class_list2.remove(student)
        print(sorted(class_list2))

     

posted @ 2023-03-14 16:12  YE-  阅读(118)  评论(0编辑  收藏  举报