列表、集合、字典的相关练习
1、使用列表推导式,输出1~100的所有素数
输入下面代码
# 定义一个辅助函数用来判断是否是素数
def is_prime(num):if num <= 1:return Falsefor i in range(2, int(num**0.5) + 1): #int函数将结果转换为整数,向下取整if num % i == 0:return Falsereturn True# 使用列表推导式找出1到100的所有素数
prime_numbers = [x for x in range(1, 101) if is_prime(x)]# 打印素数列表
print(prime_numbers)
代码执行结果
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
在这段代码中for
循环是素数检查的核心。它从 2 开始(因为 1 不是素数)到 int(num**0.5) + 1
结束。这里使用 num**0.5
是因为一个合数(非素数)必定有一个因子小于或等于它的平方根。int()
函数用来将浮点数转换为整数,确保循环的上限是整数。
2、使用列表推导式,输出200~400之间能被5或6整除的数
输入下面代码
a = [x for x in range(200,401) if x%5==0 or x%6==0]
print(a)
代码运行结果
[200, 204, 205, 210, 215, 216, 220, 222, 225, 228, 230,
234, 235, 240, 245, 246, 250, 252, 255, 258, 260, 264,
265, 270, 275, 276, 280, 282, 285, 288, 290, 294, 295,
300, 305, 306, 310, 312, 315, 318, 320, 324, 325, 330,335, 336, 340, 342, 345, 348, 350, 354, 355, 360, 365,366, 370, 372, 375, 378, 380, 384, 385, 390, 395, 396,
400]
3、使用集合推导式,输出1~100的所有素数
输入下面代码
方法也和前面一样,只是输出结果为集合
def is_prime(num):if num < 2:return Falsefor i in range(2, int(num**0.5) + 1):if num % i == 0:return Falsereturn True# 使用集合推导式找出1到100的所有素数
prime_numbers_set = {x for x in range(2, 101) if is_prime(x)}# 打印素数集合
print(prime_numbers_set)
代码执行结果
{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97}
4、使用字典推导式将{”a“:1,”b“:2,“C”:3,“d”:4,”e“:5,”F“:6}的键中小写字母转换为大写字母,大写字母转换为小写字母
输入下面代码
# 原始字典
original_dict = {"a": 1, "b": 2, "C": 3, "d": 4, "e": 5, "F": 6}# 使用字典推导式转换键的大小写
new_dict = {key.swapcase(): value for key, value in original_dict.items()}print(new_dict)
代码运行结果
{'A': 1, 'B': 2, 'c': 3, 'D': 4, 'E': 5, 'f': 6}