作业-列表,字典操作实例
''' 练习一:编写名为collatz(number)的函数;实现的功能:参数为偶数时,打印number// 2;参数为奇数时,打印3*number + 1 ''' def collatz(number): ## if number%2==0: ## print(number//2) ## else: ## print(3*number+1) rel=number//2 if number%2==0 else number*3+1 print(rel) ##number=int(input("请输入一个整数:")) ##collatz(number) ''' 练习二:使用for循环,对列表元素的类型进行更改 ''' s = '51 5000 10000' a,b,c = [int(i) for i in s.split(" ")] ## 使用空格进行分割 print( a,b,c) #输出结果:51 5000 10000 new=list() a=['1','2','3'] for i in a: new.append(int(i)) print(new) #输出结果:[1, 2, 3] new1=[int(i) for i in a] print(new1) #输出结果:[1, 2, 3] ''' 练习三: 找出1-10之间的所有偶数,并且返回一个列表(包含以这个偶数为半径的圆的面积) 找出1-10之间的所有奇数,并且返回一个列表(转换奇数为字符串) ''' import math list1=[math.pi*r*r for r in range(2,11,2)] list2=[str(i) for i in range(1,10,2)] print(list1) print(list2) ''' 练习四:找出1-100之间的所有质数(除了1和本身没有其他因数) 解析: 首先定义一个判断质数的函数;返回0代表不是素数,返回1代表时素数 ''' #方法一: i=j=2 for i in range(2,100): # 取i从2开始,2 最小的质数 for j in range(2,i): #j在i的范围内取,range区间取不到i,看i是否有其他因数 if (i%j==0): break else: print(i,end=',') #方法二: num=[]; i=2 for i in range(2,100): j=2 for j in range(2,i): if (i%j==0): break else: num.append(i) print(num) #方法三: def isprime(num): for i in range(2,num): if num%i==0: return 0 else: return 1 li=[] for x in range(2,101): if isprime(x): li.append(x) print(li) ''' 练习一: 假设有20个学生,成绩在60-100之间,筛选出成绩在90分以上的学生 解析: 随机生成60-100之间的学生和成绩;然后在生成的字典中选择输出 ''' import random #方法一: stuInfo={ } for i in range(20): name='stu'+str(i) score=random.randint(60,100) stuInfo[name]=score print("所有人的成绩为:\n",stuInfo) highscore={} for name,score in stuInfo.items(): if score > 90: highscore[name]=score print("90分以上的成绩为:\n",highscore) #方法二: stuInfo = {'student' + str(i):random.randint(60,100) for i in range(20)} print("所有人的成绩为:\n",stuInfo) print("90分以上的成绩为:\n",{name:score for name,score in stuInfo.items() if score > 90} ) ''' 练习二: 将字典中的key值和value值调换 ''' dic1= {'a':1,'b':2,'c':3} dic2={ b:a for a,b in dic1.items()} print(dic2) print({ b:a.upper() for a,b in dic1.items()}) #输出结果为:{1: 'a', 2: 'b', 3: 'c'} {1: 'A', 2: 'B', 3: 'C'} ''' 练习三:大小写合并,Key值最终全部为小写 ''' d = {'a':1,'b':2,'c':3,'A':5} print( {k.lower():d.get(k.upper(),0)+d.get(k.lower(),0) for k,v in d.items()} )