作业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 图的字典表示有向图的字典表示。输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度。比如上图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))