朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow
声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!
Python 3.0还引入了“集合解析构造”,它类似于我们在之前介绍过的列表解析的形式,但不同的是,编写在花括号中而不是方括号中,并且作用于集合而不是列表。集合解析运行一个循环并在每次迭代时收集一个表达式的结果,通过一个循环变量来访问当前的迭代值以用于集合表达式中。结果是通过运行代码创建的一个新的集合,它具备所有一般的集合行为:
>>> {x ** 2 for x in [1,2,3,4]} # 3.0 set comprehension
{16,1,4,9}
在这个表达式中,循环部分编写在右边,而集合表达式编写在左边(x**2)。和列表解析一样,我们可以很好地理解这个表达式的含义:“对于列表中的每一个X,给出包含X的平方的一个新的集合”。解析也可以迭代其他类型的对象,例如字符串(下面的第一个例子展示了如何从一个已有的可迭代对象创建一个集合):
>>> {x for x in 'spam'} # Same as: set('spam')
{'a','p','s','m'}
>>> {c * 4 for c in 'spam'} # Set of collected expression results
{'ssss','aaaa','pppp','mmmm'}
>>> {c * 4 for c in 'spamham'}
{'ssss','aaaa','hhhh','pppp','mmmm'}
>>> S = {c * 4 for c in 'spam'}
>>> S | {'mmmm','xxxx'}
{'ssss','aaaa','pppp','mmmm','xxxx'}
>>> S & {'mmmm','xxxx'}
{'mmmm'}
因为其他的关于解析的知识要依赖于我们现在还不准备介绍的底层概念,这些概念将在后面再详细介绍。在后面我们将遇到Python 3.0中的另一种解析,即字典解析,并且,我们随后将介绍关于所有解析(列表、集合、字典和生成器)的更多内容。