集合(字典的近親)
集合的兩個功能:
•集合可以實作去重的功能;
•集合可以實作關系測試; 交集, 差集,并集, 是否子集, 是否沒有交集........
集合set的定義
•集合是不重複的資料結構;
# 如果花括号裡面為空,則是字典類型;
# 定義集合的第一種方式 ;
•工廠方法定義集合時, 括号裡面是可疊代的對象, eg: 數值類型不可以;
# 定義集合的第二種方式 ; 定義一個空的集合;
應用: 如何實作清單去重?
•轉換為集合資料類型; set(清單)
•字典的fromkeys方法實作;
# 實作清單去重 1 :
# 實作清單去重 2 :
集合的特性
•集合是無序的, 不重複的資料類型;
•是以不支援索引,也不支援切片;也不支援重複;也不支援連接配接;
•支援成員操作符;
•支援for循環;
# 集合支援 for 循環,是可疊代的;
集合的增删改查
•增
查- (關系測試操作)
# 交集
方法1:
方法2:
# 并集
# 差集
# 對等差分
•s1.issubset(s2)
•s1.issuperset(s2)
•s1.isdisjoint(s2)
删
•s.remove删除集合指定元素, 如果不存在,則報錯;
•s.discard删除集合指定元素, 如果不存在,do nothing;
•s.clear清空集合元素
應用:
(華為機試題)題目描述
明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性, 他先用計算機生成了N個1到1000
之間的随機整數(N≤1000), N是使用者輸入的,對于 其中重複的數字,隻保留一個,把其餘相同的數去
掉,不同的數對應 着不同的學生的學号。然後再把這些數從小到大排序,按照排好的順 序去找同學做調
查。請你協助明明完成“去重”與“排序”的工作;
•提示:
•生成随機數,
import random
random.randint(1,1000)
•清單的去重
總結
•可變資料類型: 清單, 字典, 集合
•不可變資料類型: 數值類型, 字元串, 元組
- 可變資料類型實作某個功能, 直接改變可變的資料類型;
- 不可變資料類型實作某個功能,需要将結果指派給另外一個變量;
是否實作for循環
•可疊代資料類型: str, list, tuple, dict, set
•不可疊代資料類型:數值類型
是否支援索引,切片, 重複和連接配接特性
•有序的資料類型: str, list, tuple
•無序的資料類型: dict, set
本文轉自 無緣 51CTO部落格,原文連結:http://blog.51cto.com/13352594/2059218