python练习五——PTA

7-1 图的字典表示 (20 分)

捕获.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
结尾无空行

#又是去括号?
n=int(input())
nn=n
bian=0
length=0
while n>=1:
    # print("gkhk")
    n-=1
    tmp=eval(input())
    # print(tmp.values())
    for i in tmp.values():#tmp.value()厉害诶,这个居然能把输入的字典里的字典都给提取出来了
       """ kk={}
        kk=i
        print(kk)"""
       if isinstance(i, dict):
           # print("1111")
           bian += len(i)
           # print(bian)
           for value in i.values():
               length += value
               # print(length)
print("{} {} {}".format(nn,bian,length))

7-2 四则运算(用字典实现) (30 分)

四则运算(用字典实现),比较c语言的switch语句。

输入格式:
在一行中输入一个数字 在一行中输入一个四帜运算符(+,-,*,/) 在一行中输入一个数字

输出格式:
在一行中输出运算结果(小数保留2位)

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

7
/
3
结尾无空行
输出样例1:
在这里给出相应的输出。例如:

2.33
结尾无空行
输入样例2:
在这里给出一组输入。例如:

10
/
0
结尾无空行
输出样例2:
在这里给出相应的输出。例如:

divided by zero
结尾无空行

#这个怎么用字典运算啊?之后想想
m=float(input())
c=input()
n=float(input())
if c=="/":
    if n!=0:
      ans=m/n
    else:
      print("divided by zero")
      exit(0)
elif c=="*":
  ans=m*n
elif c=="+":
  ans=m+n
elif c=="-":
  ans=m-n
print("%.2f" %ans)#format还是有点不熟悉

7-3 通过两个列表构建字典 (10 分)

输入两行字符串,以空格为分隔,将每行字符串存储为列表形式。将第一个列表的元素值作为键,将第二个列表中对应顺序的元素作为值,构建一个字典,按键升序排列后输出字典的所有键值对列表。

输入格式:
输入两行字符串,分别以空格为分隔存为列表。

输出格式:
按键的升序,输出字典键值对列表。

输入样例:
学校 城市 邮编
集美大学 厦门 361021
结尾无空行
输出样例:
[(‘城市’, ‘厦门’), (‘学校’, ‘集美大学’), (‘邮编’, ‘361021’)]
结尾无空行

#有连续的时间写题的感觉真好
m=map(str,input().split())
n=map(str,input().split())
m=list(m)
n=list(n)
'''for i in range(0,len(m)):
    ans.clear()
    ans.append(m[i])
    ans.append(n[i])
    tmp=tuple(ans)
    end.append(tmp)
print(end)
#[('城市', '厦门'), ('学校', '集美大学'), ('邮编', '361021')]'''
tmp1={}
for i in range(0,len(m)):
    tmp1[m[i]]=n[i]
end=[]
tmp=[]
for i in sorted(tmp1):
    tmp.clear()
    tmp.append(i)
    tmp.append(tmp1[i])
    end.append(tuple(tmp))
print(end)#nice成功用到了题目 要求的字典,之后的题目做对后,都试试用题目要求的数据结构

7-4 两数之和 (30 分)

给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数,如找到,解是唯一的。找不到则显示 “no answer”。输出的下标按从小到大排序。用一重循环加字典实现。

输入格式:
在一行中给出这组数。 在下一行输入目标数

输出格式:
在一行中输出这两个数的下标,用一个空格分开。

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

2,7,11,15
9
结尾无空行
输出样例1:
在这里给出相应的输出。例如:

0 1
结尾无空行
输入样例2:
在这里给出一组输入。例如:

3,6,9
10
结尾无空行
输出样例2:
在这里给出相应的输出。例如:

no answer
结尾无空行

#这个怎么也用字典
n=map(int,input().split(','))
n=list(n)
m=int(input())
# print(n)
for i in range(0,len(n)):
    for j in range(i+1,len(n)):
        if n[i]+n[j]==m:
            print("%d %d" %(i,j))
            exit(0)
print("no answer")
            

7-5 输出星期名缩写 (70 分)

输入一个1到7的数字,输出对应的星期名的缩写。
1 Mon
2 Tue
3 Wed
4 Thu
5 Fri
6 Sat
7 Sun

输入格式:
输入1到7之间数字

输出格式:
输出对应的星期名的缩写

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

1
结尾无空行
输出样例:
在这里给出相应的输出。例如:

Mon
结尾无空行

m={}
m[1]="Mon"
m[2]="Tue"
m[3]="Wed"
m[4]="Thu"
m[5]="Fri"
m[6]="Sat"
m[7]="Sun"
n=int(input())
print(m[n])

7-6 jmu-python-查成绩 (10 分)

从键盘输入一个学生所有课程的成绩,输入格式为”课程名:成绩“,每门课占一行,以空行结束。随后提示”请输入要查询的课程:“,用户从键盘输入课程名,查询并输出该课程的成绩,要求进行异常处理,对不存在的课程进行捕捉处理。

输入格式:
输入学生所有课程的成绩,每门课占一行,格式为”课程名:成绩“,以空行结束 在提示后输入课程名

输出格式:
如果课程存在,直接输出成绩,否则提示”没有该门课程“

输入样例1:
数学:96
英语:82
计算机:76
思政:90

计算机
结尾无空行
输出样例1:
请输入要查询的课程:
76
结尾无空行
输入样例2:
数学:96
英语:82
计算机:76
思政:90

数学a
结尾无空行
输出样例2:
请输入要查询的课程:
没有该门课程
结尾无空行

#以空行为结束符,第一次哦
zd={}
while True:
    try:
        tmp0=input().split(':')
#         print(tmp0)
        if len(tmp0)==1:
#             print("kongge ")
            break
        tmp1=int(tmp0[1])
        tmp0=tmp0[0]
        zd[tmp0]=tmp1
#         print(zd)
    except:break
requ=input()
print("请输入要查询的课程:")
try:   
    print(zd[requ])
except:
    print("没有该门课程")

7-7 jmu-python-重复元素判定 (20 分)

每一个列表中只要有一个元素出现两次,那么该列表即被判定为包含重复元素。
编写函数判定列表中是否包含重复元素,如果包含返回True,否则返回False。
然后使用该函数对n行字符串进行处理。最后统计包含重复元素的行数与不包含重复元素的行数。

输入格式:
输入n,代表接下来要输入n行字符串。
然后输入n行字符串,字符串之间的元素以空格相分隔。

输出格式:
True=包含重复元素的行数, False=不包含重复元素的行数
,后面有空格。

输入样例:
5
1 2 3 4 5
1 3 2 5 4
1 2 3 6 1
1 2 3 2 1
1 1 1 1 1
结尾无空行
输出样例:
True=3, False=2
结尾无空行

n=int(input())
true=0
flase=0
for i in range(0,n):
    m=map(int,input().split())
    m=list(m)
    """sign=100
    for i in range(0,n):
        for j in range(i+1,n):
            if m[i]==m[j]:
                true+=1
                sign=99
                break
        if sign==99:
            break"""
    #想到了新的方法,nice
    if(len(m)!=len(set(m))):#出现了重复元素
        true+=1
false=n-true
print("True=%d, False=%d" %(true,false))

7-8 jmu-python-生日悖论 (15 分)

生日悖论,指如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。尝试编程验证。

验证方法提示:使用从1到365的整数代表生日。测试n次,每次生成23个随机数,随机数的范围从1到365(包括365)。
然后查看有无重复的生日。
最后算出重复的比率。

输入格式:
随机数种子x 测试次数n

注意:需将x转换为整数型再进行设置。

输出格式:
rate=算出的比率,比率保留2位小数

输入样例:
3 1000
输出样例:
rate=0.54

#又是这随机数种子啊,之前就见到过但是用的少,没怎么记住
import random as r
x,n=input().split()
#1000次的实验结果取平均值吗,重复是在一次测试里重复取值吗
num=0;
n=int(n)
tmp=[]
ans=0
r.seed(int(x))
while True:
    #python里的表达式都返回什么值啊,为什么不能像c++一样
    if(num>n):
        break
    num+=1
    tmp.clear()
    for i in range(23):#生成23个人的生日
        tmp.append(r.randint(1,365))
    if(len(tmp)!=len(set(tmp))):#出现同一天生日的
        ans+=1
ans=ans/n
print("rate={:.2f}".format(ans))
#终于把题目看明白了,相当于就是用计算机来实现概率统计和概率定值
        

7-9 统计并输出字符串中小写元音字母的个数 (30 分)

输入一个以换行结束的字符串,统计并输出字符串中小写元音字母的个数(小写元音字母: ‘a’,‘e’,‘i’,‘o’,‘u’)。

输入格式:
在一行中输入字符串

输出格式:
在一行中输出字符串中小写元音字母的个数

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

HelloI
结尾无空行
输出样例:
在这里给出相应的输出。例如:

2
结尾无空行

s=input()
p=[]
p.append('a')
p.append('e')
p.append('i')
p.append('o')
p.append('u')
# print(p)
ans=0
for i in range(0,len(s)):
    if s[i] in p:
        ans+=1
print(ans)

7-10 分析活动投票情况 (20 分)

利用集合分析活动投票情况。第一小队有五名队员,序号是1,2,3,4,5;第二小队也有五名队员,序号6,7,8,9,10。输入一个得票字符串,求第二小队没有得票的队员

输入格式:
在一行中输入得票的队员的序列号,用逗号隔开。

输出格式:
一行中输出第二小队没有得票的队员序号。

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

1,5,9,3,9,1,1,7,5,7,7,3,3,1,5,7,4,4,5,4,9,5,10,9
结尾无空行
输出样例:
在这里给出相应的输出。例如:

6 8
结尾无空行

m=map(int,input().split(','))
m=list(m)
zd={}
for i in range(0,len(m)):
    zd[m[i]]=1
num=0
for i in range(5,11):
    try:
        if zd[i]==1:
            continue
    except:
        num+=1
        if num==1:
            print("%d" %i,end="")
        elif num>1:
            print(" %d" %i,end="")

7-11 能被3,5和7整除的数的个数(用集合实现) (30 分)

求指定区间内能被3,5和7整除的数的个数

输入格式:
在一行中从键盘输入2个正整数a,b(1<=a<b<=10000000),用空格隔开。

输出格式:
在一行输出大于等于a且小于等于b的能被3,5和7整除的数的个数。

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

10 100
结尾无空行
输出样例1:
在这里给出相应的输出。例如:

0
结尾无空行
输入样例2:
在这里给出一组输入。例如:

1000 100000
结尾无空行
输出样例:
在这里给出相应的输出。例如:

943
结尾无空行

#这个为什么要用集合啊,不是没有重复的吗
a,b=map(int,input().split())
ans=0
for i in range(a,b+1):
    if i%3==0 and i%5==0 and i%7==0:
        ans+=1
print(ans)

7-12 求矩阵鞍点的个数 (30 分)

一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

本题要求编写程序,求一个给定的n阶方阵的鞍点。

输入格式: 输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。

输出格式: 鞍点的个数

输入样例1:

4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9
结尾无空行
输出样例1:

1
结尾无空行
输入样例2:

2
1 7
4 1
结尾无空行
输出样例2:

0
结尾无空行
输入样例3:

3
4 7 8
1 3 3
2 3 1
结尾无空行
输出样例3:

2
结尾无空行

#按行按列分别存为列表好查找最大最小
#或者直接找到每行每列的最大值最小值存起来,但是思路好复杂,有没有简便的方法,感觉有好多循环
#算了,看别人的代码也好多,还是自己写吧
#弄个二维数组存放每一行列的最大最小值 ,字典,列表也行,第一个用作行列数标记
n=int(input())
#所有的存进字典,int 列表
mp={}#hang
mp1={}#lie
ans1={}#hangmax
ans2={}#liemin
for i in range(1,n+1):
    tmp=list(map(int,input().split()))
    mp[i]=tmp
    # print(mp[i])
    ans1[i]=max(tmp)
tmp=[]
for i in range(n):
    tmp.clear()
    for j in range(1,n+1):
        # print(mp[j][i])
        tmp.append(mp[j][i])
    # mp1[i]=tmp
    ans2[i]=min(tmp)
    # print(mp1[i],ans2[i])
end1=0
for i in range(1,n+1):
    for j in range(n):
        if ans1[i]==ans2[j]:
          end1+=1
# print(end)
print(end1)#感觉我的算法还是存在漏洞,不能保证是行列相同,放ACM过不了

7-13 列表或元组的数字元素求和 (20 分)

求列表中数字和,列表中嵌套层次不限2层

输入格式:
在一行中输入列表或元组

输出格式:
在一行中输出数字的和

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

[11,2,[3,7],(68,-1),“123”,9]
结尾无空行
输出样例:
在这里给出相应的输出。例如:

99
结尾无空行

"""#这个题之前也出现过,但是当时不敢写,这几天的数据结构里如果是括号匹配用c++,可以考虑用栈
str=map(str,input().split(','))
#原来列表里的数字字符是不算的,那就考虑列表的操作
str=list(str)
print(str)"""
def solve(str):
    ans=0;
    for i in str:
        if isinstance(i,int):
            ans+=i
        elif isinstance(i,list):
            ans+=solve(i)
        elif isinstance(i,tuple):
            ans+=solve(i)
    # print(ans)
    return ans
str=eval(input())#为什么一定要eval啊连带着列表这个性质也赌进去了,不然就是字符串
# str=input()
print(solve(str))

7-14 列表数字元素加权和(1) (40 分)

输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权和。第一层每个元素 的值为:元素值1,第二层每个元素的值为:元素值2,第三层每个元素的值为:元素值*3, …,以此类推!

输入格式:
在一行中输入列表

输出格式:
在一行中输出加权和

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

[1,2,[3,4,[5,6],7],8]
结尾无空行
输出样例:
在这里给出相应的输出。例如:

72
结尾无空行

s=eval(input())
def f(basic, num):
    if type(basic) == int:
        return basic*num
    else:
        return sum(f(i, num+1) for i in basic)
print(f(s, 0))

7-15 jmu-Java&Python-统计一段文字中的单词个数并按单词的字母顺序排序后输出 (10 分)

现需要统计若干段文字(英文)中的不同单词数量。
如果不同的单词数量不超过10个,则将所有单词输出(按字母顺序),否则输出前10个单词。

注1:单词之间以空格(1个或多个空格)为间隔。
注2:忽略空行或者空格行。
注3:单词大小写敏感,即’word’与’WORD’是两个不同的单词 。

输入说明
若干行英文,最后以!!!为结束。

输出说明
不同单词数量。 然后输出前10个单词(按字母顺序),如果所有单词不超过10个,则将所有的单词输出。

输入样例
Failure is probably the fortification in your pole
It is like a peek your wallet as the thief when you
are thinking how to spend several hard-won lepta
when you Are wondering whether new money it has laid
background Because of you, then at the heart of the
most lax alert and most low awareness and left it
godsend failed
!!!
输出样例
49
Are
Because
Failure
It
a
alert
and
are
as
at

ans=0
false=[]
tmp=[]
end=[]
while True:
    try:
        false=input()
        if false=='\n' or false==' ':
            continue;
        if false=='!!!!!':
#             print("结束")
            break
        tmp=map(str,false.split())#空行怎么办
        tmp=list(tmp)

        end=end+tmp
    except:
        break
end=set(end)
print(len(end))
end=sorted(end)
if(len(end)<=10):
    for i in end:
        print(i)
else:
    for i  in range(10):
        print(end[i])

7-16 jmu-Java&Python-统计文字中的单词数量并按出现次数排序 (25 分)

现在需要统计若干段文字(英文)中的单词数量,并且还需统计每个单词出现的次数。

注1:单词之间以空格(1个或多个空格)为间隔。
注2:忽略空行或者空格行。

基本版:
统计时,区分字母大小写,且不删除指定标点符号。

进阶版:

统计前,需要从文字中删除指定标点符号!.,😗?。 注意:所谓的删除,就是用1个空格替换掉相应字符。
统计单词时需要忽略单词的大小写。
输入说明
若干行英文,最后以!!!为结束。

输出说明
单词数量
出现次数排名前10的单词(次数按照降序排序,如果次数相同,则按照键值的字母升序排序)及出现次数。

输入样例1
failure is probably the fortification in your pole

it is like a peek your wallet as the thief when you
are thinking how to spend several hard-won lepta

when you are wondering whether new money it has laid
background because of you then at the heart of the

most lax alert and most low awareness and left it

godsend failed
!!!
输出样例1
46
the=4
it=3
you=3
and=2
are=2
is=2
most=2
of=2
when=2
your=2
结尾无空行
输入样例2
Failure is probably The fortification in your pole!

It is like a peek your wallet as the thief when You
are thinking how to. spend several hard-won lepta.

when yoU are? wondering whether new money it has laid
background Because of: yOu?, then at the heart of the
Tom say: Who is the best? No one dare to say yes.
most lax alert and! most low awareness and* left it

godsend failed
!!!
结尾无空行
输出样例2
54
the=5
is=3
it=3
you=3
and=2
are=2
most=2
of=2
say=2
to=2
结尾无空行

ans=0
false=[]
tmp=[]
end=[]
kk=[]
kk.append('!')
kk.append('.')
kk.append(',')
kk.append(':')
kk.append('*')
kk.append('?')#能不能一次行一行输入
# print(kk)
while True:
    try:
        false1=''
        false=input()
        """发现其实空行读入了也没事,并没有影响到后面,后面len(false)就为0"""
        """if false == '\n' or false == ' ':
            continue"""
        if false == '!!!!!':
            break
        for i in range(0,len(false)):
            if false[i] in kk:
                false1+=' '
            else:
                false1+=false[i].lower()
        tmp=map(str,false1.split())#空行怎么办
        tmp=list(tmp)
        end=end+tmp
    except:
        break
#print(end)
end1=set(end)#没有永久改变
print(len(end1))
# print(len(end))
ans={}
for i in end:
    if i in ans.keys():
        ans[i]+=1
    else:
        ans[i]=1
# print(ans)
items = list(ans.items())
# print(items)
items.sort(key=lambda x:(-x[1],x[0]))#列表倒序排序
#那个排序没弄明白,再看看
for i in range(10):
    if i >= len(items):
        break
    key, val = items[i]
    print("{}={}".format(key, val))

7-17 统计字符频次 (10 分)

输入一个字符串,输出其中出现次数最多的字符及其出现的次数,要求使用字典。

输入格式:
输入任意长度字符串。

输出格式:
字符串中出现次数最多的字符及其次数。

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

abcdsekjsiejdlsjdiejsl
结尾无空行

#简单
s=input()
zd={}
num=0
for i in s:
    num+=1
    if i not in zd.keys():
        zd[i]=1
    else:
        zd[i]+=1
n=0
maxn=max(zd.values())
# print(maxn)
ans=[]
tmp=""
for key,value in zd.items():
    if value == maxn:
        tmp=key
        break
ans.append(tmp)
ans.append(maxn)
print(tuple(ans))

7-18 字典合并与排序 (10 分)

用户分两行输入两个字典,格式参照输入要求;请设计程序实现:

将两个字典合并为一个字典,如果两个字典中分别有相同的键(key),需将对应的值相加后作为字典中该键对应的新值。

输入格式:
用两行输入字典格式的两个数据,字典中键的数据类型统一为数字或字符,字典中值的数据均为数字。

输出格式:
输出合并后的字典数据,字典数据要求按照键的增序排列。

输入样例1:
输入1:

{1:2,3:9,5:2,6:2}
{2:1,6:3,7:9,1:4}
结尾无空行
输出样例1:
输出1:

{1: 6, 2: 1, 3: 9, 5: 2, 6: 5, 7: 9}
结尾无空行
输入样例2:
输入2:

{‘c’:3,‘a’:4,‘n’:1}
{‘a’:3,‘c’:7,‘b’:10}
结尾无空行
输出样例2:
输出2:

{‘a’: 7, ‘b’: 10, ‘c’: 10, ‘n’: 1}
结尾无空行

#怎么输入是个问题呢    噢就是之前那个列表元组的括号问题
#直接两个字典相加减今晚网还挺好
zd1=eval(input())
zd2=eval(input())
for key in zd1.keys():
    if key in zd2.keys():
        zd2[key]+=zd1[key]
    else:
        zd2[key]=zd1[key]
ans={}
for key in sorted(zd2.keys()):
    ans[key]=zd2[key]
print(ans)

7-19 jmu-python-班级人员信息统计 (15 分)

输入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’]
结尾无空行

#这个感觉就是模拟,挺简单的,就是操作繁琐
#集合但是并没用用到容斥定理
A=input()
B=map(str,input().split())
A=set(A)
B=set(B)
A=list(A)
B=list(B)
anum=len(A)
bnum=len(B)
a=[]
a=A+B
"""for i in B:
    a.append(i)
for i in A:
    a.append(i)"""
C=map(str,input().split())
E=map(str,input().split())
T=input()
C=list(C)
E=list(E)
sum=anum+bnum

print("Total: {:d}".format(sum))

ans1=0
tmp=[]
for i in a:
    if i not in C and i not in E:
        ans1+=1
        tmp.append(i)

print("Not in race: ",end="")
print(sorted(tmp),end="")
print(", num: {:d}".format(ans1))

c=[]
"""for i in E:
    c.append(i)
for i in C:
    c.append(i)"""
c=C+E
c=set(c)
print("All racers: ",end="")
print(sorted(c),end="")
print(", num: {:d}".format(len(c)))

d=[]
for i in c:
    if i in C and i in E:
        d.append(i)
print("ACM + English: ",end="")
print(sorted(d),end="")
print(", num: {:d}".format(len(d)))

e=[]
for i in c:
    if i in C and i not in E:
        e.append(i)
print("Only ACM: ",end="")
print(sorted(e))

f=[]
for i in c:
    if i not in C and i in E:
        f.append(i)
print("Only English: ",end="")
print(sorted(f))
print("ACM Or English: {}".format(sorted(e+f)))#这个不确定
if T in A:
    A.remove(T)
    print(sorted(A))
elif T in B:
    B.remove(T)
    print(sorted(B))
"""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']"""





7-20 求集合的最大值和最小值 (10 分)

已知集合A包含5个元素,分别是21, 234,-32,3,-55,请编程实现以下功能:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出集合A‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出集合A中的最大值‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出集合A中的最小值

输入格式:

输出格式:
集合A

集合A的最大值

集合A的最小值

输入样例:

结尾无空行
输出样例:
{-32, 3, -55, 234, 21}
234
-55
结尾无空行

print("{-32, 3, -55, 234, 21}\n234\n-55")
#想一下怎么用集合实现,以及集合里是否有max函数

1.squares={x:x*x for x in range(20)}
print(squares[12])
2.text=“four score and 7 years”
lenwords={s:len(s) for s in text.split()}
print(lenwords[“score”])
3.元素的哈希值
4.执行指令a=eval(input(""))后,键盘输入{1:‘a’,1:‘b’,‘a’:‘b’},则变量a的值为{1: ‘b’, ‘a’: ‘b’}。

为什么
5.dic1={“赵洁” : 15264771766,“张秀华” : 13063767486,“胡桂珍” : 15146046882,“龚丽丽” : 13606379542,“岳瑜” : 13611987725}
dic2={“王玉兰” : 15619397270,“王强” : 15929494512,“王桂荣” : 13794876998,“邓玉英” : 18890393268,“何小红” : 13292597821}
dic3=dic1.update(dic2)
print(dic3[“王强”])这个怎么不能dic3
6.dic1={“赵洁” : 15264771766,“张秀华” : 13063767486,“胡桂珍” : 15146046882,“龚丽丽” : 13606379542,“岳瑜” : 13611987725}
dic2={“王玉兰” : 15619397270,“王强” : 15929494512,“王桂荣” : 13794876998,“邓玉英” : 18890393268,“何小红” : 13292597821}
dic3={**dic1,**dic2}
dic1.update(dic2)
print(dic1==dic3)那个 ** 是什么
1.字典的get方法
get()方法语法:

dict.get(key, default=None)
参数
key – 字典中要查找的键。
default – 如果指定键的值不存在时,返回该默认值

  • 10
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~晚风微凉~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值