使用推导式一行代码完成,就是这么简单!

89 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第8天,点击查看活动详情

使用推导式一行代码完成,就是这么简单!

Python的集合

今天我们说一说Python中的集合这个问题,集合同样是使用大括号括起来的,这一点和Python的字典的数据结构相同,集合中的元素是无序的,不重复,这个特性和Java的set集合差不多,创建集合我们使用set()方法来定义,例如: s = set('abcdefg'),这样创建的集合是七个字符组成的集合。我们可以使用update()增加数据,使用remove()方法删除数据,如果数据不存在会报错,而我们使用discard()方法删除数据及时不存在也不会报错。Python的集合还有个pop()方法,这个方法是随机删除集合中的元素,看到pop()方法你可能想到Java中的栈,这个方法和栈还是有区别的,栈弹出的是栈顶的元素,而这个pop()方法是随机删除。怎么判断一个元素是否在集合中呢?我们使用in关键字,举个例子:print(10 in s),这就是判断元素10是否在s集合中,这行代码输出的是True或者False

推导式

什么是Python的推导式呢?所谓推导式就是通过一个数据结构生成相同数据结构的数据,推导式分为列表推导式,集合推导式还有字典推导式。列表推导式:

list = [i for i in range(10)]
list2 = [i for i in range(10) if i % 2 == 0]

print(list)

c输出结果为list列表,这个列表中的数据是从0到9十个元素。list2这一行代码是带有if语句,它的功能我想你应该也能看明白,取的是0到9十个元素组成的压缩成一行代码完成。

字典也有推导式,我们同样给出例子来,这样比较直观。

dict1 = {i: i**2 for i in range(1, 5)}
dict2 = {list1[i]: list2[i] for i in range(len(list2))}

dict1是定义的字典key是从1到4,value是对应键的平方。dict2定义的是将列表list1的元素作为i,list2中的元素作为value组成一个字典。

集合的推导式:set1 = {i ** 2 for i in list},这行代码的意思,将列表遍历,元素乘以2组成集合。

小结

行文至此,我们总结一下,这篇文章我们注意讲了两大块,一块是Python集合这个数据结构,集合具有去重无序的特性,它是用大括号括起来的,并对它常用的一些方法做了介绍,另一大块是Python的推导式,分别介绍了字典推导式、集合推导式和列表推导式。所谓推导式就是让代码更加简单,简洁。