一、知识点:
列表推导式是一种简洁的方式来创建列表。
它的基本语法是在方括号内使用表达式和循环来生成列表。
一般形式为:[expression for item in iterable]
其中,expression表示要添加到列表中的元素,item是可迭代对象中的每个元素。
下面是一个使用列表推导式的示例:
# 生成包含1到10的平方数的列表
squares = [x**2 for x in range(1, 11)]
print(squares)
输出结果为:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
在这个示例中,我们使用了列表推导式来生成一个包含1到10的平方数的列表。range(1, 11)生成了一个从1到10的可迭代对象,循环遍历每个元素并计算其平方,并将结果添加到列表中。
列表推导式还可以包含条件语句来筛选元素。例如:
# 生成包含1到10的奇数的列表
odds = [x for x in range(1, 11) if x % 2 != 0]
print(odds)
输出结果为:[1, 3, 5, 7, 9]
在这个示例中,我们使用了列表推导式来生成一个包含1到10的奇数的列表。if x % 2 != 0是一个条件判断语句,只有当x为奇数时,才将x添加到列表中。
列表推导式可以根据需要灵活地组合表达式和条件判断来生成符合特定需求的列表。
二、例题:
实验任务描述
现有一列表 ls = ['the lord of the rings','anaconda','legally blonde','gone with the wind'],编写程序,实现以下功能:
-
输入“1”,输出元素为0-9的3次方的列表
-
输入“2”,输出元素为0-9中偶数的3次方的列表
-
输入“3”,输出元素为元组的列表,元组中元素依次是0-9中的奇数和该数的3次方
-
输入“4”,将列表 ls 中每个元素首字母转为大写字母,输出新列表
str.capitalize()函数可以将字符串str的首字母转换为大写字母。
输入其他字符,输出“结束程序”
拓展实践
在自己电脑上编程,对生成器进行遍历输出,了解生成器成列表推导式的异同。
示例
输入: 1
输出:[0, 1, 8, 27, 64, 125, 216, 343, 512, 729]
ls = ['the lord of the rings','anaconda','legally blonde','gone with the wind']
choice = input()
if choice == "1":
result = [i**3 for i in range(10)]
print(result)
elif choice == "2":
result = [i**3 for i in range(10) if i%2 == 0]
print(result)
elif choice == "3":
result = [(i, i**3) for i in range(10) if i%2 == 1]
print(result)
elif choice == "4":
result = [s.capitalize() for s in ls]
print(result)
else:
print("结束程序")