物来顺应,未来不迎,当时不杂,既过不恋;|

万事胜意k

园龄:2年8个月粉丝:11关注:4

Python_作业3_组合数据类型

1-1、如a是一个列表,且a[:]与a[::-1]相等,则a中元素按顺序排列构成一个回文。

  答案:√

1-2、表达式 {1, 3, 2} > {1, 2, 3} 的值为True。

  答案:×

1-3、已知x为非空列表,那么执行语句x[0] = 3之后,列表对象x的内存地址不变。

  答案:√

1-4、Python内置的集合set中元素顺序是按元素的哈希值进行存储的,并不是按先后顺序。

  答案:√

1-5、已知x是一个列表,那么x = x[3:] + x[:3]可以实现把列表x中的所有元素循环左移3位。

  答案:√

7-1 图的字典表示

捕获.JPG

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

输入格式:

第一行表示输入的行数
下面每行输入表示一个顶点和该顶点相连的边及长度的字符串

输出格式:

在一行中输出顶点数,边数,边的总长度

输入样例:

在这里给出一组输入。例如:

4
{'a':{'b':10,'c':6}}
{'b':{'c':2,'d':7}}
{'c':{'d':10}}
{'d':{}}

输出样例:

在这里给出相应的输出。例如:

4 5 35

代码:

s=int(input())
a=0
b=0
dict={}
for i in range(0,s):
t=input()
t=eval(t)
dict.update(t)
for key in dict.keys():
c=len(dict[key])
a=a+c
for key2 in dict[key].keys():
d=dict[key][key2]
b=b+d
print(str(s)+" "+str(a)+" "+str(b))

7-2 jmu-python-逆序输出

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

输入格式:

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

输出格式:

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

输入样例:

a b c e f gh

输出样例:

ghfecba
['a', 'b', 'c', 'e', 'f', 'gh']
gh f e c b a

代码:

s= str(input())
m=s.split()
o=""
for i in range(len(m)-1,-1,-1):
o=o+m[i]
print(o)
print(m[:])
d=str(m[-1])
for i in range(len(m)-1):
d=d+" "+m[-i-2]
print(d)

 7-3 jmu-python-班级人员信息统计

输入a,b班的名单,并进行如下统计。

输入格式:

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

输出格式

特别注意:输出人员名单的时候需调用sorted函数,如集合为x,则print(sorted(x))
输出两个班级的所有人员数量
输出两个班级中既没有参加ACM,也没有参加English的名单和数量
输出所有参加竞赛的人员的名单和数量
输出既参加了ACM,又参加了英语竞赛的所有人员及数量
输出参加了ACM,未参加英语竞赛的所有人员名单
输出参加英语竞赛,未参加ACM的所有人员名单
输出参加只参加ACM或只参加英语竞赛的人员名单
最后一行:一个同学要转学,首先需要判断该学生在哪个班级,然后更新该班级名单,并输出。如果没有在任何一班级,什么也不做。

输入样例:

abcdefghijab
1 2 3 4 5 6 7 8 9 10
1 2 3 a b c
1 5 10 a d e f
a

输出样例:

Total: 20
Not in race: ['4', '6', '7', '8', '9', 'g', 'h', 'i', 'j'], num: 9
All racers: ['1', '10', '2', '3', '5', 'a', 'b', 'c', 'd', 'e', 'f'], num: 11
ACM + English: ['1', 'a'], num: 2
Only ACM: ['2', '3', 'b', 'c']
Only English: ['10', '5', 'd', 'e', 'f']
ACM Or English: ['10', '2', '3', '5', 'b', 'c', 'd', 'e', 'f']
['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

代码:

from collections import OrderedDict
a= input()
b=input().split(" ")
c=input().split(" ")
d=input().split(" ")
e=input()
list_1="".join(OrderedDict.fromkeys(a))
st_split = list(b)
while "" in st_split:
st_split.remove("")
list_2 = list(set(st_split))
list_2.sort(key=st_split.index)
re=len(list_1)+len(list_2)
print("Total: "+str(re))
while "" in c:
c.remove("")
result3=list(c)+d
st_split2 = list(d)
list2=list(set(list_2+list(list_1)).difference(set(result3)))
l2 = list(set(result3))
l2.sort(key=result3.index)
list4=[]
list4=list(set(l2) & set(c))
list41=list(set(list4) & set(d))
list5=list(set(l2).difference(set(c)))
list6=list(set(l2).difference(set(d)))
list7=list(set(list5).union(set(list6)))
print('Not in race: {0}, num: {1}'.format(sorted(list2),str(len(list2))))
print('All racers: {0}, num: {1}'.format(sorted(l2),str(len(l2))))
print('ACM + English: {0}, num: {1}'.format(sorted(list41),str(len(list41))))
print('Only ACM: {0}'.format(sorted(list6)))
print('Only English: {0}'.format(sorted(list5)))
print('ACM Or English: {0}'.format(sorted(list7)))
list_4=list(list_1)
if e in list_4:
list_4.remove(e)
print (sorted(list_4))
if e in list_2:
list_2.remove(e)
print (sorted(list_2))

 

本文作者:万事胜意k

本文链接:https://www.cnblogs.com/ysk0904/p/17278155.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   万事胜意k  阅读(141)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起