在我们接触到一个陌生的单词时,如果想要使用就会先选择查询它的语法。同样在python中的推导式也可以这样理解。我们想建立列表的时候,可以查询列表表达式来快速的建立。我们最近所学的集合,也有类似的推导式可以运用。接下来就以这两种推导式为代表,为大家展示它们的使用和区别。
你之前可能已经学习过列表推导式(list comprehensions)、字典推导式(dictionary comprehensions)和生成器推导式。这里还有一个集合推导式(Set Comprehension)。集合推导式和它们是很类似的,Python中的集合推导式可以按照下面的方法构造:
{skill for skill in ['SQL', 'SQL', 'PYTHON', 'PYTHON']}
上面的输出为一个包含2个值的集合,因为集合中相同的元素不能多次出现。使用集合推导式背后的动机是希望能够用手动进行数学运算的方法在代码中编写和推导式子。
{skill for skill in ['GIT', 'PYTHON', 'SQL'] if skill not in {'GIT', 'PYTHON', 'JAVA'}}
上面的代码与之前学过的求差集类似,只是看上去有一点点不同。
列表推导式:
列表推导式对应的英文是list comprehension,有时也被翻译为列表解析式,是一种创建列表的简洁语法。先看下面这种较为常用的列表创建方式:
data = [] # 创建空列表 for x in range(-5, 5): if x >= -2: # 如果x>=-2则给data添加i的平方 data.append(x**2) print(data) # 输出:[4, 1, 0, 1, 4, 9, 16]
集合推导式跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。
今天关于列表推导式与集合推导式的讲解到这里就结束了,目的是为了帮助大家学会语法,能够快速独立的建立列表、集合,两者的区别只有括号的不用。其他的推导式大家也可以在课外进行了解。