# set
**dictçä½ç¨æ¯å»ºç«ä¸ç» key åä¸ç» value çæ å°å
³ç³»ï¼dictçkeyæ¯ä¸è½éå¤çã**
æçæ¶åï¼æä»¬åªæ³è¦ dict ç keyï¼ä¸å
³å¿ key 对åºç valueï¼ç®çå°±æ¯ä¿è¯è¿ä¸ªéåçå
ç´ ä¸ä¼éå¤ï¼è¿æ¶ï¼set就派ä¸ç¨åºäºã
**set ææä¸ç³»åå
ç´ ï¼è¿ä¸ç¹å list å¾åï¼ä½æ¯setçå
ç´ æ²¡æéå¤ï¼è䏿¯æ åºçï¼è¿ç¹å dict ç keyå¾åã**
å建 set çæ¹å¼æ¯è°ç¨ set() å¹¶ä¼ å
¥ä¸ä¸ª listï¼listçå
ç´ å°ä½ä¸ºsetçå
ç´ ï¼
```shell
>>> s = set(['A', 'B', 'C'])
```
å¯ä»¥æ¥ç set çå
容ï¼
```shell
>>> print s
set(['A', 'C', 'B'])
```
**请注æ**ï¼ä¸è¿°æå°çå½¢å¼ç±»ä¼¼ listï¼ ä½å®ä¸æ¯ listï¼ä»ç»çè¿å¯ä»¥åç°ï¼æå°ç顺åºååå§ list çé¡ºåºæå¯è½æ¯ä¸åçï¼å 为setå
é¨åå¨çå
ç´ æ¯**æ åº**çã
å 为setä¸è½å
å«éå¤çå
ç´ ï¼æä»¥ï¼å½æä»¬ä¼ å
¥å
å«éå¤å
ç´ ç list 伿乿 ·å¢ï¼
```shell
>>> s = set(['A', 'B', 'C', 'C'])
>>> print s
set(['A', 'C', 'B'])
>>> len(s)
3
```
ç»ææ¾ç¤ºï¼setä¼èªå¨å»æéå¤çå
ç´ ï¼åæ¥çlistæ4个å
ç´ ï¼ä½setåªæ3个å
ç´ ã
## 访é®set
ç±äº**setåå¨çæ¯æ åºéå**ï¼æä»¥æä»¬æ²¡æ³éè¿ç´¢å¼æ¥è®¿é®ã
è®¿é® setä¸çæä¸ªå
ç´ å®é
ä¸å°±æ¯å¤æä¸ä¸ªå
ç´ æ¯å¦å¨setä¸ã
ä¾å¦ï¼åå¨äºçéåå¦ååçsetï¼
```
>>> s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
```
æä»¬å¯ä»¥ç¨ in æä½ç¬¦å¤æï¼
Bartæ¯è¯¥ççåå¦åï¼
```
>>> 'Bart' in s
True
```
Billæ¯è¯¥ççåå¦åï¼
```
>>> 'Bill' in s
False
```
bartæ¯è¯¥ççåå¦åï¼
```
>>> 'bart' in s
False
```
çæ¥å¤§å°åå¾éè¦ï¼'Bart' å 'bart'被认为æ¯ä¸¤ä¸ªä¸åçå
ç´ ã
## setçç¹ç¹
**setçå
é¨ç»æådictå¾åï¼å¯ä¸åºå«æ¯ä¸åå¨value**ï¼å æ¤ï¼å¤æä¸ä¸ªå
ç´ æ¯å¦å¨setä¸é度å¾å¿«ã
**setåå¨çå
ç´ ådictçkey类似ï¼å¿
é¡»æ¯ä¸å对象**ï¼å æ¤ï¼ä»»ä½å¯å对象æ¯ä¸è½æ¾å
¥setä¸çã
æåï¼setåå¨çå
ç´ ä¹æ¯æ²¡æé¡ºåºçã
setçè¿äºç¹ç¹ï¼å¯ä»¥åºç¨å¨åªäºå°æ¹å¢ï¼
ææä¸å°æææ¥å¯ä»¥ç¨å符串'MON', 'TUE', ... 'SUN'表示ã
å设æä»¬è®©ç¨æ·è¾å
¥ææä¸è³æææ¥çæå¤©ï¼å¦ä½å¤æç¨æ·çè¾å
¥æ¯å¦æ¯ä¸ä¸ªææçææå¢ï¼
å¯ä»¥ç¨ **if è¯å¥**夿ï¼ä½è¿æ ·åé常ç¹çï¼
```
x = '???' # ç¨æ·è¾å
¥çå符串
if x!= 'MON' and x!= 'TUE' and x!= 'WED' ... and x!= 'SUN':
print 'input error'
else:
print 'input ok'
```
**注æï¼**if è¯å¥ä¸ç...表示没æååºçå
¶å®ææåç§°ï¼æµè¯æ¶ï¼è¯·è¾å
¥å®æ´ã
妿äºå
å建好ä¸ä¸ªsetï¼å
å«'MON' ~ 'SUN'ï¼
```
weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])
```
å夿è¾å
¥æ¯å¦ææï¼åªéè¦å¤æè¯¥å符串æ¯å¦å¨setä¸ï¼
```
x = '???' # ç¨æ·è¾å
¥çå符串
if x in weekdays:
print 'input ok'
else:
print 'input error'
```
è¿æ ·ä¸æ¥ï¼ä»£ç å°±ç®åå¤äºã
## éåset
ç±äº set 乿¯ä¸ä¸ªéåï¼æä»¥ï¼éå set åéå list 类似ï¼é½å¯ä»¥éè¿ for 循ç¯å®ç°ã
ç´æ¥ä½¿ç¨ for 循ç¯å¯ä»¥éå set çå
ç´ ï¼
```
>>> s = set(['Adam', 'Lisa', 'Bart'])
>>> for name in s:
... print name
...
Lisa
Adam
Bart
```
**注æ:** è§å¯ for 循ç¯å¨éåsetæ¶ï¼å
ç´ ç顺åºålistç顺åºå¾å¯è½æ¯ä¸åçï¼èä¸ä¸åçæºå¨ä¸è¿è¡çç»æä¹å¯è½ä¸åã
## æ´æ°set
ç±äº**setåå¨çæ¯ä¸ç»ä¸éå¤çæ åºå
ç´ **ï¼å æ¤ï¼æ´æ°set主è¦å两件äºï¼
**䏿¯ææ°çå
ç´ æ·»å å°setä¸ï¼äºæ¯æå·²æå
ç´ ä»setä¸å é¤ã**
æ·»å å
ç´ æ¶ï¼ç¨setçadd()æ¹æ³ï¼
```
>>> s = set([1, 2, 3])
>>> s.add(4)
>>> print s
set([1, 2, 3, 4])
```
å¦ææ·»å çå
ç´ å·²ç»åå¨äºsetä¸ï¼add()ä¸ä¼æ¥éï¼ä½æ¯ä¸ä¼å è¿å»äºï¼
```
>>> s = set([1, 2, 3])
>>> s.add(3)
>>> print s
set([1, 2, 3])
```
å é¤setä¸çå
ç´ æ¶ï¼ç¨setçremove()æ¹æ³ï¼
```
>>> s = set([1, 2, 3, 4])
>>> s.remove(4)
>>> print s
set([1, 2, 3])
```
妿å é¤çå
ç´ ä¸åå¨setä¸ï¼remove()伿¥éï¼
```
>>> s = set([1, 2, 3])
>>> s.remove(4)
Traceback (most recent call last):
File "