Python之 set的特色

Python之 set的特色

set的內部結構和dict很像,惟一區別是不存儲value,所以,判斷一個元素是否在set中速度很快測試

set存儲的元素和dict的key相似,必須是不變對象,所以,任何可變對象是不能放入set中的。spa

最後,set存儲的元素也是沒有順序的code

set特色:速度快、元素不可變、存儲的元素沒有順序對象

 

set的這些特色,能夠應用在哪些地方呢?ip

星期一到星期日能夠用字符串'MON', 'TUE', ... 'SUN'表示。字符串

假設咱們讓用戶輸入星期一至星期日的某天,如何判斷用戶的輸入是不是一個有效的星期呢?input

能夠用 if 語句判斷,但這樣作很是繁瑣:io

x = '???' # 用戶輸入的字符串
if x!= 'MON' and x!= 'TUE' and x!= 'WED' ... and x!= 'SUN':
    print 'input error'
else:
    print 'input ok'

注意:if 語句中的...表示沒有列出的其它星期名稱,測試時,請輸入完整。class

若是事先建立好一個set,包含'MON' ~ 'SUN':error

weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])

再判斷輸入是否有效,只須要判斷該字符串是否在set中:

x = '???' # 用戶輸入的字符串
if x in weekdays:
    print 'input ok'
else:
    print 'input error'

這樣一來,代碼就簡單多了。

相關文章
相關標籤/搜索