set的特點
set的內部結構和dict很像,唯一區別是不存儲value,因此,判斷一個元素是否在set中速度很快。
set存儲的元素和dict的key類似,必須是不變對象,因此,任何可變對象是不能放入set中的。
最后,set存儲的元素也是沒有順序的。
set的這些特點,可以應用在哪些地方呢?
星期一到星期日可以用字符串'MON', 'TUE', ... 'SUN'表示。
假設我們讓用戶輸入星期一至星期日的某天,如何判斷用戶的輸入是否是一個有效的星期呢?
可以用 if 語句判斷,但這樣做非常繁瑣:
x = 'MON' # 用戶輸入的字符串 if x == 'MON' or x == 'TUE' or x == 'WED' or x == 'THU' or x == 'FRI' or x == 'SAT'or x != 'SUN': print ('input ok') else: print ('input error')
如果事先創建好一個set,包含'MON' ~ 'SUN':
weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN']) x = 'MON' # 用戶輸入的字符串 if x in weekdays: print ('input ok') else: print ('input error')
這樣一來,代碼就簡單多了。