Python 列表推导式(推导式与生成器)

一、知识点:

列表推导式是一种简洁的方式来创建列表。

它的基本语法是在方括号内使用表达式和循环来生成列表。

一般形式为:[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. 输入“1”,输出元素为0-9的3次方的列表‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

  2. 输入“2”,输出元素为0-9中偶数的3次方的列表‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

  3. 输入“3”,输出元素为元组的列表,元组中元素依次是0-9中的奇数和该数的3次方‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

  4. 输入“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("结束程序")

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值