Pythong中的推导式练习与使用

推导式

- 推导式概念:
- 	推导式(comprehesions 又称解析式),是Python的一种独有特性,推导式是可以从一个数据序列构建另一个新的数据序列的结构体。

推导式的种类

- 推导式共有三种:
- 1.列表(list)推导式:用于创建新的列表
- 2.字典(dict)推导式:用于构建字典
- 3.集合(set)推导式:用于生成集合
- 每种类型的推导式都有其特定的用途和语法结构

列表推导式(List Comprehesions)

列表推导式是最常用的推导式类型。
它们用于从现有的列表或任何可迭代对象创建一个新的列表。

基本语法:
new_list = [expression for item in iterable if condition]
格式:
new_lsit = [表达式 for 变量 in 列表 if 条件]
参数:
- expression 是对itme的操作或处理方式
- for item in iterable 是一个循环,遍历每个元素
- if condition 是一个可选的过滤器,只有符合条件的元素才被处理
示例:
  1. 过滤掉长度小于或等于3的字符串列表,并将剩下的转换成大写字母
names = ["Bob", "Tom", "alice", "Jerry", "Smith"]
new_names = [name.upper() for name in names if len(names) > 3]
print(new_names)
# result: ['BOB', 'TOM', 'ALICE', 'JERRY', 'SMITH']
  1. 创建一个新列表,其中包含原列表中每个数字的平方,其中参数%2为零的过滤出来
numbers = [1, 2, 3, 4, 5]
new_number = [i * i for i in numbers if i % 2 == 0]
print(new_number)
# result: [4, 16]

字典推导式(Dict Comprehersions)

字典推导式用于从键值对序列中创建字典,这在处理数据转换是非常有用

基本语法:
new_dict = {key_expression: value_expression for item in iterable if condition}
示例:
  1. 两个列表,其中一个列表存储名字,另一个列表存储年龄,把它们转换成字典,其中名字是键,年龄是值
list_name = ["Bob", "Tom", "alice", "Jerry", "Smith"]
list_age = [22, 24, 21, 19, 27]
# 使用zip高阶函数将两个列表中对应下标的值一一组合成一个元祖
new_dict = {name: age for name, age in zip(list_name, list_age)}  # ('Bob', 22), ('Tom', 24), ('alice', 21), ('Jerry', 19), ('Smith', 27)
print(new_dict)
# result:{'Bob': 22, 'Tom': 24, 'alice': 21, 'Jerry': 19, 'Smith': 27}
  1. 使用字符串及其长度创建字典
list_name = ["Bob", "Tom", "alice", "Jerry", "Smith"]
new_dict = {i: len(i) for i in list_name}
print(new_dict)
# result:{'Bob': 3, 'Tom': 3, 'alice': 5, 'Jerry': 5, 'Smith': 5}
  1. 提供三个数字,以三个数字为键,三个数字的平方为值
num = [2, 4, 6]
new_dict = {n: n * n for n in num}
print(new_dict)
# result:{2: 4, 4: 16, 6: 36}
  1. 提供三个数字,以key字符串+数字为键,三个数字的平方为值
num = [3, 5, 7]
new_dict = {'key%s' % i: i * i for i in num}
print(new_dict)
# result:{'key3': 9, 'key5': 25, 'key7': 49}

集合推导式(Set Comprehersions)

集合推导式与列表推导式类似,但是他们创建的是集合(set),这意味着结果中不会有重复的元素。

基本语法:
new_set = {expression for item in iterable if condition}
示例:
  1. 创建一个集合,将原始列表中的元素添加到集合中
init_list = [1, 2, 2, 3, 4, 4, 5]
new_set = {x for x in init_list}
print(new_set)
# result:{1, 2, 3, 4, 5}
# 集合推导式自动祛除了重复的元素,只保留了原始列表中的不同元素

总结:推导式是一个简洁且高效的方式,一般用于简单的逻辑代码处理。但在处理复杂逻辑时,为了代码的可读性和可维护性,可能需要使用传统的循环和条件判断来实现

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

现实与梦·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值