对比 | Python中超级好用的“列表解析式”、“字典解析式”、“集合解析式”

举报
数据分析与统计学之美 发表于 2021/09/28 10:59:13 2021/09/28
【摘要】 对比系列第六课

1. 列表、字典、集合概念说明

在讲述这三个概念之前,首先我们需要对列表、字典、集合这三个概念,做一个简单的说明。

列表:列表是由一系列按特定顺序排列的元素组成的,是一个有序组合。在Python中,用[ ]号表示列表,用半角状态下的逗号来分割列表中的元素。列表中的元素可以重复。字典:

2. 列表解析式

列表推导式在日常编程中,发挥着很重要的作用(尤其是利用python做数据清洗的时候),它能够简化我们的代码,及其好用,我这里将它的常见3种用法给大家总结一下。

① 一般形式

  • 语法格式:[ expression for i in iterable ]
x = [1, 3, 5, 7, 9]
y = [i**2 for i in x]
print(y)

结果如下:
在这里插入图片描述

② 带if的列表解析式

  • 语法格式:[ expression for i in iterable if…]
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [i for i in x if i % 2 == 0]
print(y)

结果如下:
在这里插入图片描述

③ 带if…else…的列表解析式

  • 语法格式:[ expression if…else… for i in iterable]
x = [1, 2, 3, 4, 5, 6]
y = ["我是偶数" if i % 2 == 0 else "我是奇数" for i in x]
print(y)

结果如下:
在这里插入图片描述

2. 字典解析式

其实不管是现在要讲述的字典解析式,还是后面要讲述的集合解析式,基本都可以使用列表解析式的3中常规操作。我这里仅仅用下面这一个案例来进行说明。

  • 基本语法格式:{ expression for i in iterable }
  • 用法还是和列表一样,区别就是:用 { } 包起来,而且前面的expression是 key:value 的形式。

这里有一份成绩单,记录了每个学生的英语成绩,下面我要筛选出英语成绩及格(大于等于60)的信息。

x = {'张三': 70, '李四': 49,'王五': 67, '赵六': 80,'沈七': 99}
y = {k: v for k, v in x.items() if int(v) >= 60}
print(y)

结果如下:

在这里插入图片描述

3. 集合解析式

注意一个概念,集合是不可重复的,集合解析式能够自动实现去重功能。其实这里的用法和上述的字典有点相似,仔细看清楚哦。

  • 基本语法格式:{ expression for i in iterable }
  • 用法和字典类似,也是用 { } 包起来,但是前面的expression不再是 key:value 的形式。
x = ["香蕉","橘子","西瓜","香蕉","橘子"]
y = {i for i in x}
print(y)

结果如下:
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。