列表编程复习题(1)
1、编写程序,输入一个列表和两个整数作为下标,然后输出列表中介于两个的元素组成的子列表。例如,用户输入[1,2,3,4,5,6]和2,5,程序输出[3,4,5,6]。
list_ = list(map(int, input("请输入一个整数列表(元素间以逗号相隔):").split(",")))
index_1, index_2 = map(int, input("请输入两个整数(以逗号相隔):").split(","))
print(list_[index_1:index_2])
2、编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后元素降序排列,并输出结果。
import random
list_ = [random.randrange(1, 100) for i in range(20)]
print("原前10个数据:{}".format(list_[:9]))
print("排序后:{}".format(sorted(list_[:9])))
print("原后10个数据:{}".format(list_[10:]))
print("排序后:{}".format(sorted(list_[10:], reverse=True)))
3、编写程序,生成包含50个随机整数的列表,然后删除其中所有的奇数。
import random
list_ = [random.randrange(1, 100) for i in range(50)]
def filter_num(num):
return num % 2 == 0
print("原列表中数据:{}".format(list_))
print("删除其中奇数后数据:{}".format(list(filter(filter_num, list_))))
4、编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。
import random
list_ = [random.randrange(1, 100) for i in range(20)]
print("排序前:{}".format(list_))
list_[1::2] = sorted(list_[1::2])
print("排序后:{}".format(list_))
5、筛选法求[2,n]范围内全部素数的基本思路是:在2~n中划去2的倍数(不包括再逊去A的倍数(不包括3),由于4已被划去,
再找5的倍数,……直到划去不超过n的倍数,剩下的数都是素数。请编写程序。
list_ = list(range(2, 100))
print("原有的数据:{}".format(list_))
def filter_num(num):
for i in range(2, num + 1):
if num % i == 0:
return num == i
print("过滤后:{}".format(list(filter(filter_num, list_))))