set的內(nèi)部結(jié)構(gòu)和dict很像杖们,唯一區(qū)別是不存儲value,因此袜腥,判斷一個元素是否在set中速度很快见擦。
set存儲的元素和dict的key類似,必須是不變對象羹令,因此锡宋,任何可變對象是不能放入set中的。
最后特恬,set存儲的元素也是沒有順序的。
set的這些特點徐钠,可以應(yīng)用在哪些地方呢癌刽?
星期一到星期日可以用字符串'MON', 'TUE', ... 'SUN'表示。
假設(shè)我們讓用戶輸入星期一至星期日的某天尝丐,如何判斷用戶的輸入是否是一個有效的星期呢显拜?
可以用if 語句判斷,但這樣做非常繁瑣:
x = '???'# 用戶輸入的字符串ifx!= 'MON' and x!= 'TUE' and x!= 'WED' ... and x!= 'SUN':print 'input error'else:print 'input ok'
注意:if 語句中的...表示沒有列出的其它星期名稱爹袁,測試時远荠,請輸入完整。
如果事先創(chuàng)建好一個set失息,包含'MON' ~ 'SUN':
weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])
再判斷輸入是否有效譬淳,只需要判斷該字符串是否在set中:
x = '???'# 用戶輸入的字符串ifxinweekdays:print 'input ok'else:print 'input error'
這樣一來,代碼就簡單多了盹兢。