![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=1734441309-a3B3DmTA2s7OCAZYbjpILAa5BYGRF5mJ-0-5ead9a370cf11a1223ca79a7df7b9c89)
比较一下语句,看看列表推导式和集合推导式的异同。
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image126.jpg?sign=1734441309-D6c8YJKuzzsOUAN3p8Wc3tjORGZkemqs-0-a3164f4536ce2a9b7a6965fcd7c7e2b5)
不难发现,构建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=1734441309-EzpG2X8xOvwBV0nEoAj4l5EQvgOVGzGO-0-b3be4fa05377191edf1bd212a987cef5)