本篇博客主要为 https://bbs.csdn/skill/python 频道练习题模块补充题目,暂定每天提供 5 or 6 道测试题,后面可能会更多哦~。

本篇博客对【进阶语法】→【列表推导式】进行出题。

在橡皮擦的滚雪球学 Python 第二季中,有专门针对该知识点的讲解,希望学习的同学可以提前查阅。
《列表推导式与字典推导式,滚雪球学 Python》

以下题目,默认将正确答案,放置在选项 A 位置

文章目录

  • 知识点:python 列表推导式
    • 第 1 题:
    • 第 2 题:
    • 第 3 题:
    • 第 4 题:
    • 第 5 题:
    • 第 6 题:
    • 试题仓库地址如下:

知识点:python 列表推导式

第 1 题:

题目难度:1 星
题干(问题描述):
以下哪个列表推导式能实现与下述 for 循环一样的效果?

my_numbers = [3, 1, 5, 2, 4]
result = []
for i in range(len(my_numbers)):
    result.append(my_numbers[i] ** 2)

print(result)

选项 A:

print([i ** 2 for i in [3, 1, 5, 2, 4]])

选项 B:

print((i ** 2 for i in [3, 1, 5, 2, 4]))

选项 C:

print([i * 2 for i in [3, 1, 5, 2, 4]])

选项 D:

print([i ** 2 for i in range[3, 1, 5, 2, 4]])

正确答案:A

第 2 题:

题目难度:1 星
题干(问题描述):
请选出能将下述列表中每一项都扩大一倍的列表推导式

[1,2,3,4,5,6,7,8,9,10]

选项 A:

my_list = [1,2,3,4,5,6,7,8,9,10]
print([i*2 for i in my_list])

选项 B:

my_list = [1,2,3,4,5,6,7,8,9,10]
print([i+=1 for i in my_list])

选项 C:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print([i*1 for i in my_list])

选项 D:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print({i*2 for i in my_list})

正确答案:A

第 3 题:

题目难度:2 星
题干(问题描述):
请选择出与下述代码等价的列表推导式代码

result = []
for x in range(1, 5):
	for y in range(6, 10):
		result.append((x, y))

print(result)

选项 A:

print([(x, y) for x in range(1, 5) for y in range(6, 10)])

选项 B:

print([(x, y) for x in range(5) for y in range(10)])

选项 C:

print([x, y for x in range(1, 5) for y in range(6, 10)])

选项 D:

print(((x, y) for x in range(1, 5) for y in range(6, 10)))

正确答案:A

第 4 题:

题目难度:2 星
题干(问题描述):
请使用列表推导式筛选出下述列表中 3 或者 7 的倍数。

my_list = list(range(1,100))

选项 A:

print([i for i in my_list if i % 3 == 0 or i % 7 == 0])

选项 B:

print([i for i in my_list if i % 3 == 0 and i % 7 == 0])

选项 C:

print([i for i in my_list if i / 3 == 0 or i / 7 == 0])

选项 D:

print([i for i in my_list if i / 3 == 0 and i / 7 == 0])

正确答案:A

第 5 题:

题目难度:2 星
题干(问题描述):
通过列表推导式,删除下述列表中的重复元素。

my_list = [1, 1, 2, 2, 2, 3, 3, 3, 4, 4]

选项 A:

my_list = [1, 1, 2, 2, 2, 3, 3, 3, 4, 4]
ret = []
temp = [ret.append(i) for i in my_list if i not in ret]
print(ret)

选项 B:

my_list = [1, 1, 2, 2, 2, 3, 3, 3, 4, 4]
ret = []
temp = [ret.append(i) for i in my_list if i in ret]
print(ret)

选项 C:

my_list = [1, 1, 2, 2, 2, 3, 3, 3, 4, 4]
ret = []
temp = [ret+i for i in my_list if i in ret]
print(ret)

选项 D:

my_list = [1, 1, 2, 2, 2, 3, 3, 3, 4, 4]
temp = [temp.append(i) for i in my_list if i in temp]
print(temp )

正确答案:A

第 6 题:

题目难度:2 星
题干(问题描述):
通过列表推导式,将下述大列表拆分成小列表

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
# 如每组3个元素,预期结果 [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]

选项 A:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
# 不做非数字验证
item_count = int(input("请输入子列表元素数:"))
temp = [my_list[i:i + item_count] for i in range(0, len(my_list), item_count)]
print(temp)

选项 B:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
# 不做非数字验证
item_count = int(input("请输入子列表元素数:"))
temp = [my_list[i:i + item_count] for i in range(0, len(my_list))]
print(temp)

选项 C:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
# 不做非数字验证
item_count = int(input("请输入子列表元素数:"))
temp = [my_list[i:item_count] for i in range(0, len(my_list))]
print(temp)

选项 D:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
# 不做非数字验证
item_count = int(input("请输入子列表元素数:"))
temp = [my_list[i] for i in range(0, len(my_list))]
print(temp)

正确答案:A

试题仓库地址如下:

https://codechina.csdn/hihell/question

更多推荐

python 入门教程之每日 5 or 6 道题,列表推导式篇 | Python技能树征题