11. 求两个集合的交集和并集
set1={1,2,3,4,5}
set2={3,4,5,6,7}#交集
result=[]for i in set1:if i in set2:
result.append(i)print(result)#并集
result=[]for i in set1:if i notin set2:
result.append(i)for i in set2:if i notin set1:
result.append(i)print(result)12. 一个包含多个数字的列表,请使用随机的方式,将每个数字+1后,生成新列表
#1"""
生成一个临时列表temp存储取出来的数字
result存储最后的新列表
用while 遍历
利用random.choice 随机取出一个数字,如果没有再temp中就加到temp中
len(temp)==4 就break
再遍历temp,每个+1
"""import random
lst=[1,2,3,4,5,6]
temp=[]
result=[]whileTrue:
number=random.choice(lst)if number notin temp:
temp.append(number)else:continueiflen(temp)==6:breakfor i inrange(len(temp)):
result.append(temp[i]+1)print(result)#2import random
lst=[1,2,3,4,6]
result=[]whileTrue:
lst_index=random.randint(0,4)if lst_index notin result:
result.append(lst_index)
lst[lst_index]+=1iflen(result)==5:breakprint(lst)13. 判断一个字符串是否为回文字符串
所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的。
比如"level" 、 “aaabbaaa”
"""
判断是奇数还是偶数:
字符串位奇数时:s[0:len(s)//2]==s[-1:-len(s)//2:-1](-5//2==3,所以不用+1)
字符串偶数时:s[0:len(s)//2]==s[-1:-len(s)//2-1:-1]
"""defis_same_letter(s):iflen(s)%2!=0:if s[0:len(s)//2]==s[-1:-len(s)//2:-1]:return'是一个回文字符串'else:return'不是一个回文字符串'iflen(s)%2==0:if s[0:len(s)//2]==s[-1:-len(s)//2-1:-1]:return'是一个回文字符串'else:return'不是一个回文字符串'print(is_same_letter('level'))print(is_same_letter('aaabbaaa'))print(is_same_letter('adfsdd'))print(is_same_letter('aba'))14. 实现合并同类型的有序列表算法,要求不能有重复元素
lst1 =[1,1,2,3,4]
lst2 =[2,3,4,5,5,8]
result=[]for i in lst1:if i notin lst2:
result.append(i)for i in lst2:if i notin result:
result.append(i)print(sorted(result))15. 不区分大小写对包含多个字符串对象的列表进行排序,显示排序后的结果还需要显示大小写不变的原字符串
l =["Abc","zhangsan","gloryroad","nanjing"]print(sorted(l))16、一个数如果恰好等于它的因子之和,这个数就称为完数,例如6的因子为1,2,3,而6=1+2+3,因此6是完数,编程找出1000之内的所有完数,并按6 its factors are 1,2,3这样的格式输出
for i inrange(1,1000):
result=[]#求约数for j inrange(1,i):if i%j ==0:#除以小于自身的数
result.append(j)#求1-1000中的数是否==sum(result)if i==sum(result):print('%s its factors are'%i,end='')for value in result:print(value,end=' ')print()