python 将一个数字序列中的奇数扩大3倍,且偶数变为其平方值后按升序排序输出
要求:
(1)完成题目要求的函数为func(list1)。
(2)数字序列列表由推导式自动生成后传给函数func。
(3)map()函数、lambda()函数、filter()函数这三个函数都要使用到。
import random
a=16
n=0
ds=[]#创建空列表,用于存放下面的数据
ds1=[]
odd1=[]
gjh=[]
while True:#也可以用for循环语句生成初始列表
sh=random.randint(1,1000)#随机生成一个[1,100]范围内的整数
ds.append(sh)#将生成的随机整数追加到ds这个数列的最后一个
n+=1#每循环一次n就加1
if n==a:
break#当循环次数到达设定值a后就终止循环
print('初始列表为:',ds)
odd=list(filter(lambda x:x%2!=0,ds))#在列表中找到奇数,filter函数用于选择
for i in ds:
if i%2==0:
ds1.append(i)#在列表中找到偶数并将其加到空列表ds1中
eve=list(map(lambda x:x**2,ds1))#把偶数都平方
def func(list1):#创建函数,将奇数三次方
for i in list1:
i=i**3
odd1.append(i)
return odd1#函数的返回值
for i in eve:
gjh.append(i)
for j in func(odd):
gjh.append(j)#后面这两步是将平方和三次方后的两个数列合成为一个新的数列
print('变换后的新列表为:',sorted(gjh))#用sorted方法将新数列进行默认的由小到大的排序
代码图片:
运行结果如下: