![Python程序设计教程(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/531/34752531/b_34752531.jpg)
上QQ阅读APP看书,第一时间看更新
4.5.3 集合推导式
集合也有自己的推导式,跟列表推导式类似,只不过将中括号变成大括号,最后生成的是集合。
语法形式:
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image125.jpg?sign=1739363711-3hHVNRhUnS4L75KOf73KgYkHvtXzKXHz-0-10ff279c8f2a6918b0613a2f81d10a8a)
比较一下语句,看看列表推导式和集合推导式的异同。
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image126.jpg?sign=1739363711-1CDeokJZjgC8b9DZhuDM1JGMAzwmD1lJ-0-b15bc1f6cb78b23bc3b294e4e8468916)
不难发现,构建alist和bset的时候,除了中括号和大括号不同以外其他语法均相同,alist生成一个列表,里面的元素是元组(1,2,3,3,2,1,4)中每个元素的2倍,而且元素位置一一对应;blist生成一个集合,里面的元素是元组(1,2,3,3,2,1,4)中每个元素的2倍去掉重复元素后的结果,并且并非与元组的元素位置一一对应。
另外,需要说明的是元组没有推导式。
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image127.jpg?sign=1739363711-DAwSdLI4NB07Hm72pzEMSSfhG6Rol5yO-0-f36267bb70384641851645c70ee7d4d5)