1.随机生成包含20个整数的列表,前十个元素升序排列,后十个元素降序排列。
1)练习目标
掌握列表元素的排序和sorted
2)思路提示
random库,sorted和sort排序
importrandom
x=list(random.randint(1,)foriinrange(10))
x.sort()
y=list(random.randint(1,)foriinrange(10))
y.sort(reverse=True)
x.extend(y)#此处若用x.append(y),则执行结果为第一条
print(x)
2.生成个的随机整数,以字典的形式统计每个整数出现的频率。
1)练习目标
掌握字典的基本操作和性质以及sorted的使用
2)思路提示
利用random、字典对象的get()方法、sorted()
importrandom
y={}
x=list(random.randint(1,)foriinrange())
foriteminx:
y[item]=y.get(item,0)+1
print(y)
3.生成包含30个随机数(取值范围是10~99)的列表,然后按其平方的百位数升序排列,百位数同的按值大小排列。
[42,24,31,34…]
[34,24,42,31…]
1)练习目标
key和lambda在排序中的应用
2)思路提示
使用列表推导式,sort(key=lambda….)
importrandom
fromoperatorimportitemgetter#内置函数引用
bwlist=list()
ls=list(random.randint(10,99)foriinrange(30))
#print(ls)
foriteminls:
bw=item*item//%10
bwlist.append(bw)
dj=zip(bwlist,ls)
#print(dj)
dj=sorted(dj)#(dj,key=itemgetter(1,0))#排序
#print(dj)
result=[x[1]forxindj]
print(result)
4.随机生成包含50个整数的列表(范围10~),用列表推导式选择出十位数为2的元素作为list1,选择出平方数(是某一个数的平方)作为list2。
1)练习目标
列表推导式的使用
importrandom
importmath
ls=list(random.randint(10,)foriinrange(50))
list1=[iforiinlsifi//10%10==2]
list2=[jforjinlsifmath.sqrt(j)*10//10==math.sqrt(j)]
print(list1)
print(list2)