# list
Pythonå
ç½®çä¸ç§æ°æ®ç±»åæ¯å表ï¼`list`ãlistæ¯ä¸ç§æåºçéåï¼å¯ä»¥éæ¶æ·»å åå é¤å
¶ä¸çå
ç´ ã
æ¯å¦ï¼ååºçéææåå¦çååï¼å°±å¯ä»¥ç¨ä¸ä¸ªlist表示ï¼
```
>>> ['Michael', 'Bob', 'Tracy']
['Michael', 'Bob', 'Tracy']
```
listæ¯æ°å¦æä¹ä¸çæåºéåï¼ä¹å°±æ¯è¯´ï¼listä¸çå
ç´ æ¯æç
§é¡ºåºæåçã
æé listé常ç®åï¼æç
§ä¸é¢ç代ç ï¼ç´æ¥ç¨` [ ] `ælistçææå
ç´ é½æ¬èµ·æ¥ï¼å°±æ¯ä¸ä¸ªlist对象ãéå¸¸ï¼æä»¬ä¼ælistèµå¼ç»ä¸ä¸ªåéï¼è¿æ ·ï¼å°±å¯ä»¥éè¿å鿥å¼ç¨listï¼
```
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates # æå°classmatesåéçå
容
['Michael', 'Bob', 'Tracy']
```
ç±äºPythonæ¯å¨æè¯è¨ï¼æä»¥listä¸å
å«çå
ç´ å¹¶ä¸è¦æ±é½å¿
é¡»æ¯åä¸ç§æ°æ®ç±»åï¼æä»¬å®å
¨å¯ä»¥å¨listä¸å
å«åç§æ°æ®ï¼
```
>>> L = ['Michael', 100, True]
```
ä¸ä¸ªå
ç´ ä¹æ²¡æçlistï¼å°±æ¯ç©ºlistï¼
```
>>> empty_list = []
```
## æç
§ç´¢å¼è®¿é®list
ç±äºlistæ¯ä¸ä¸ªæåºéåï¼æä»¥ï¼æä»¬å¯ä»¥ç¨ä¸ä¸ªlistæåæ°ä»é«å°ä½è¡¨ç¤ºåºçéç3个åå¦ï¼
```
>>> L = ['Adam', 'Lisa', 'Bart']
```
飿们å¦ä½ä»listä¸è·åæå®ç¬¬ N åçåå¦å¢ï¼æ¹æ³æ¯éè¿ç´¢å¼æ¥è·ålistä¸çæå®å
ç´ ã
**éè¦ç¹å«æ³¨æçæ¯**ï¼ç´¢å¼ä» 0 å¼å§ï¼ä¹å°±æ¯è¯´ï¼ç¬¬ä¸ä¸ªå
ç´ çç´¢å¼æ¯0ï¼ç¬¬äºä¸ªå
ç´ çç´¢å¼æ¯1ï¼ä»¥æ¤ç±»æ¨ã
å æ¤ï¼è¦æå°ç¬¬ä¸ååå¦çååï¼ç¨ L[0]:
```
>>> print L[0]
Adam
```
è¦æå°ç¬¬äºååå¦çååï¼ç¨ L[1]:
```
>>> print L[1]
Lisa
```
è¦æå°ç¬¬ä¸ååå¦çååï¼ç¨ L[2]:
```
>>> print L[2]
Bart
```
è¦æå°ç¬¬åååå¦çååï¼ç¨ L[3]:
```
>>> print L[3]
Traceback (most recent call last):
File "", line 1, in
IndexError: list index out of range
```
æ¥éäºï¼IndexErrorææå°±æ¯ç´¢å¼è¶
åºäºèå´ï¼å 为ä¸é¢çliståªæ3个å
ç´ ï¼ææçç´¢å¼æ¯ 0ï¼1ï¼2ã
æä»¥ï¼ä½¿ç¨ç´¢å¼æ¶ï¼**å䏿³¨æä¸è¦è¶ç**ã
## ååºè®¿é®list
æä»¬è¿æ¯ç¨ä¸ä¸ªlistæåæ°ä»é«å°ä½è¡¨ç¤ºåºçéç3个åå¦ï¼
```
>>> L = ['Adam', 'Lisa', 'Bart']
```
è¿æ¶ï¼èå¸è¯´ï¼è¯·åæ°æä½çåå¦ç«åºæ¥ã
è¦å代ç 宿è¿ä¸ªä»»å¡ï¼æä»¬å¯ä»¥å
æ°ä¸æ°è¿ä¸ª listï¼åç°å®å
å«3个å
ç´ ï¼å æ¤ï¼æåä¸ä¸ªå
ç´ çç´¢å¼æ¯2ï¼
```
>>> print L[2]
Bart
```
ææ²¡ææ´ç®åçæ¹æ³ï¼
æï¼
Bartå妿¯æåä¸åï¼ä¿ç§°åæ°ç¬¬ä¸ï¼æä»¥ï¼æä»¬å¯ä»¥ç¨ -1 è¿ä¸ªç´¢å¼æ¥è¡¨ç¤ºæåä¸ä¸ªå
ç´ ï¼
```
>>> print L[-1]
Bart
```
Bartåå¦è¡¨ç¤ºèººæªã
类似çï¼åæ°ç¬¬äºç¨ -2 表示ï¼åæ°ç¬¬ä¸ç¨ -3 表示ï¼åæ°ç¬¬åç¨ -4 表示ï¼
```
>>> print L[-2]
Lisa
>>> print L[-3]
Adam
>>> print L[-4]
Traceback (most recent call last):
File "", line 1, in
IndexError: list index out of range
```
L[-4] æ¥éäºï¼å ä¸ºåæ°ç¬¬åä¸åå¨ï¼ä¸å
±åªæ3个å
ç´ ã
使ç¨ååºç´¢å¼æ¶ï¼ä¹è¦æ³¨æ**ä¸è¦è¶ç**ã
## æ·»å æ°å
ç´
ç°å¨ï¼çéæ3ååå¦ï¼
```
>>> L = ['Adam', 'Lisa', 'Bart']
```
ä»å¤©ï¼çé转æ¥ä¸åæ°åå¦ Paulï¼å¦ä½ææ°å妿·»å å°ç°æç list ä¸å¢ï¼
第ä¸ä¸ªåæ³æ¯ç¨ list ç` append() `æ¹æ³ï¼ææ°åå¦è¿½å å° list çæ«å°¾ï¼
```
>>> L = ['Adam', 'Lisa', 'Bart']
>>> L.append('Paul')
>>> print L
['Adam', 'Lisa', 'Bart', 'Paul']
```
**append()**æ»æ¯ææ°çå
ç´ æ·»å å° list çå°¾é¨ã
妿 Paul åå¦è¡¨ç¤ºèªå·±æ»æ¯è满åï¼è¦æ±æ·»å å°ç¬¬ä¸çä½ç½®ï¼æä¹åï¼
æ¹æ³æ¯ç¨listç` insert()`æ¹æ³ï¼å®æ¥åä¸¤ä¸ªåæ°ï¼ç¬¬ä¸ä¸ªåæ°æ¯ç´¢å¼å·ï¼ç¬¬äºä¸ªåæ°æ¯å¾
æ·»å çæ°å
ç´ ï¼
```
>>> L = ['Adam', 'Lisa', 'Bart']
>>> L.insert(0, 'Paul')
>>> print L
['Paul', 'Adam', 'Lisa', 'Bart']
```
**L.insert(0, 'Paul')** çæææ¯ï¼'Paul'å°è¢«æ·»å å°ç´¢å¼ä¸º 0 çä½ç½®ä¸ï¼ä¹å°±æ¯ç¬¬ä¸ä¸ªï¼ï¼èåæ¥ç´¢å¼ä¸º 0 çAdamåå¦ï¼ä»¥ååé¢çææåå¦ï¼é½èªå¨ååç§»å¨ä¸ä½ã
## å é¤å
ç´
Paulåå¦åæ¥å 天åè¦è½¬èµ°äºï¼é£ä¹æä»¬æä¹æPaul ä»ç°æçlistä¸å é¤å¢ï¼
妿Paulå妿卿åä¸ä¸ªï¼æä»¬å¯ä»¥ç¨listç`pop()`æ¹æ³å é¤ï¼
```
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> L.pop()
'Paul'
>>> print L
['Adam', 'Lisa', 'Bart']
```
**pop()**æ¹æ³æ»æ¯å ælistçæåä¸ä¸ªå
ç´ ï¼å¹¶ä¸å®è¿è¿åè¿ä¸ªå
ç´ ï¼æä»¥æä»¬æ§è¡ L.pop() åï¼ä¼æå°åº 'Paul'ã
妿Paulåå¦ä¸æ¯æå¨æåä¸ä¸ªæä¹åï¼æ¯å¦Paulå妿å¨ç¬¬ä¸ï¼
```
>>> L = ['Adam', 'Lisa', 'Paul', 'Bart']
```
è¦æPaul踢åºlistï¼æä»¬å°±å¿
é¡»å
å®ä½Paulçä½ç½®ãç±äºPaulçç´¢å¼æ¯2ï¼å æ¤ï¼ç¨` pop(2)`æPaulå æï¼
```
>>> L.pop(2)
'Paul'
>>> print L
['Adam', 'Lisa', 'Bart']
```
## æ¿æ¢å
ç´
å设ç°å¨çéä»ç¶æ¯3ååå¦ï¼
```
>>> L = ['Adam', 'Lisa', 'Bart']
```
ç°å¨ï¼Bartåå¦è¦è½¬å¦èµ°äºï¼ç¢°å·§æ¥äºä¸ä¸ªPaulåå¦ï¼è¦æ´æ°ç级æåååï¼æä»¬å¯ä»¥å
æBartå æï¼åæPaulæ·»å è¿æ¥ã
å¦ä¸ä¸ªåæ³æ¯ç´æ¥ç¨PaulæBartç»æ¿æ¢æï¼
```
>>> L[2] = 'Paul'
>>> print L
L = ['Adam', 'Lisa', 'Paul']
```
对listä¸çæä¸ä¸ªç´¢å¼èµå¼ï¼å°±å¯ä»¥ç´æ¥ç¨æ°çå
ç´ æ¿æ¢æåæ¥çå
ç´ ï¼listå
å«çå
ç´ ä¸ªæ°ä¿æä¸åã
ç±äºBartè¿å¯ä»¥ç¨ -1 åç´¢å¼ï¼å æ¤ï¼ä¸é¢ç代ç ä¹å¯ä»¥å®æåæ ·çæ¿æ¢å·¥ä½ï¼
```
>>> L[-1] = 'Paul'
```