1.编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个数降序排列,并输出结果。
下面展示一些 内联代码片
。
import random
print('操作前:')
date = [random.randrange(100) for i in range(20)] # 在0~99中随机选取20个数
print(date) # 输出随机数
print('操作后:')
date[:10] = sorted(date[:10]) # 将data中前十个数字升序
date[10:] = sorted(date[10:], reverse=True) # 将date中后十个数字先升序后反转达到降序效果
print(date) # 输出操作后的随机数
2.编写程序,让用户在键盘上输入一个包含若干整数的列表,输出翻转后的列表。
下面展示一些 内联代码片
。
代码一:
liebiao = eval(input('请输入一个包含若干整数的列表:'))
print('翻转后列表为:')
print(list(reversed(liebiao)))
下面展示一些 内联代码片
。
代码二:
lst = eval(input('请输入一个包含若干整数的列表:')) # 输入一个列表
lst.reverse() # 将列表中的数反转
print(lst) # 输出反转后的列表
3.编写程序,使用列表实现筛选法求素数:输入一个大于2的自然数,然后输出小于该数字的所有素数组成的列表。
下面展示一些 内联代码片
。
代码一:
maxNumber = int(input('请输入一个大于2的自然数:'))
lst = list(range(2, maxNumber))
m = int(maxNumber ** 0.5)
for index, value in enumerate(lst):
if value > m:
break
lst[index + 1:] = filter(lambda x: x % value != 0, lst[index + 1:])
print(lst)
下面展示一些 内联代码片
。
代码二:
shu = int(input("请输入一个大于2的自然数:"))
lst = list() # 定义一个列表
for j in range(2, shu): # 输入数字范围
count = 0 # 计数器初始为零
for i in range(1, j + 1): # 这里范围是从1到该数本身
if j % i == 0: # 如果只有1和本身能除尽则为素数
count += 1
if count == 2: # 如果只有2个因数就是素数,否则不是
lst.append(j)#加入列表
print(lst)
4.已知列表data中有若干字符串,要求编写程序,对data中的字符串进行过滤,只输出重复字符不超过一半的字符串。
下面展示一些 内联代码片
。
data = ['fsgbd', 'aaabbb', 'chongfu','jjjjj']
print(list(filter(lambda s: len(set(s)) / len(s) > 0.5, data))) # 集合中不会出现相同的元素,
# len(set(s))是字符串中不相同元素的个数,len(s)是字符串的长度,len(set(s)) / len(s) > 0.5, data)等价于
# (len(s)-len(set(s))/len(s)<=0.5,即为只输出重复字符不超过一半的字符串