![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=1738957063-aZGm5l6L2kQ050YH6yESsk3qokNJAWWm-0-a9ba0c6279a903656f5395247a808e49)
比较一下语句,看看列表推导式和集合推导式的异同。
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image126.jpg?sign=1738957063-rmsBcWxchKrWjxqgA6MWYBMNmhDA2VRI-0-c03250a8a308d66552977122cb00fe56)
不难发现,构建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=1738957063-4l7q9EgOS5FgYw7j5Fu2uflfDhZC41kz-0-309054e8995c89a774511cea3a4da851)