>ä½ ä»¬ç¥æ±ï¼å°±ç»ä½ 们ï¼å¯»æ¾ï¼å°±å¯»è§ï¼å©é¨ï¼å°±ç»ä½ 们å¼é¨ãå 为å¡ç¥æ±çï¼å°±å¾çï¼å¯»æ¾çï¼å°±å¯»è§ï¼å©é¨çï¼å°±ç»ä»ä»¬å¼é¨ã
>æä»¥æ 论ä½äºï¼ä½ ä»¬æ¿æäººææ ·å¾
ä½ ä»¬ï¼ä½ 们ä¹è¦ææ ·å¾
人ï¼å 为è¿å°±æ¯å¾æ³åå
ç¥çéçã(MATTHEW 7:7-8,12)
#å表(2)
âå表æ¯Pythonçè¦åâï¼é£ä¹å®æè
对å®è½åä»ä¹å¢ï¼
å¨äº¤äºæ¨¡å¼ä¸è¿ä¹æä½ï¼å°±çå°æå
³å®ç彿°ææ¹æ³äºã
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
ä¸é¢çç»æä¸ï¼ä»¥åä¸å线å¼å§åç»å°¾çææ¶ä¸ç®¡ï¼å¦`__add__`ï¼ä»¥åä¼ç®¡çï¼ãå°±å©ä¸ä»¥ä¸å 个äºï¼
>'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'
è¿å ä¸ªé½æ¯å¨ç¼ç¨å®è·µä¸å¸¸å¸¸è¦ç¨å°çã
##常ç¨çåè¡¨å½æ°
###appendåextend
[ãå表(1)ã](./111.md)ä¸ï¼å¯¹å表çåºæ¬æä½æå°äº`list.append(x)`ï¼ä¹å°±æ¯å°æä¸ªå
ç´ `x` 追å å°å·²ç¥çä¸ä¸ªå表åè¾¹ã
é¤äºå°å
ç´ è¿½å å°å表ä¸ï¼è¿è½å¤å°ä¸¤ä¸ªå表åå¹¶ï¼æè
说å°ä¸ä¸ªå表追å å°å¦å¤ä¸ä¸ªå表ä¸ãæç
§åæçæ¯ä¾ï¼è¿æ¯é¦å
ç[宿¹ææ¡£](https://docs.python.org/2/tutorial/datastructures.html)ä¸çæè¿°ï¼
>list.extend(L)
> Extend the list by appending all the items in the given list; equivalent to a[len(a):] = L.
**åæææ£å¨å¦ä¹ æ¬å
容çæåæä¾ä¸ä¸ªæä¸ºä¼ç§ç¨åºåçå¿
å¤ï¼ç宿¹ææ¡£ï¼æ¯å¿
é¡»çã**
宿¹ææ¡£çè¿å¥è¯ç¿»è¯è¿æ¥ï¼
éè¿å°ææå
ç´ è¿½å å°å·²ç¥åè¡¨æ¥æ©å
å®ï¼ç¸å½äº`a[len(a):]= L`ã
è±è¯å¤ªçï¼ç¿»è¯å¤ªå·®ãç´æ¥çä¾åï¼æ´æç½ã
>>> la = [1, 2, 3]
>>> lb = ['qiwsir', 'python']
>>> la.extend(lb)
>>> la
[1, 2, 3, 'qiwsir', 'python']
>>> lb
['qiwsir', 'python']
åé`la`æåä¸ä¸ªå表对象ï¼åé`lb`乿åä¸ä¸ªå表对象ã为äºç®åï¼å°±è¯´æ`la`å`lb`两个å表ã
å°lb追å å°laçåé¢ï¼ä¹å°±æ¯ælbä¸çææå
ç´ å å
¥å°laä¸ï¼å³è®©laæ©å®¹ã
å¦ç¨åºä¸å®è¦æå¥½å¥å¿ï¼æå¨äº¤äºç¯å¢ä¸ï¼ç»å¸¸å®éªä¸ä¸èªå·±çæ³æ³ï¼ææ¶åæ¯æ¯è¾æè ¢çæ³æ³ã
>>> la = [1,2,3]
>>> b = "abc"
>>> la.extend(b)
>>> la
[1, 2, 3, 'a', 'b', 'c']
>>> c = 5
>>> la.extend(c)
Traceback (most recent call last):
File "", line 1, in
TypeError: 'int' object is not iterable
ä»ç»è§å¯ï¼è½çåºä»ä¹æ¥åï¼
忥ï¼å¦æ`extend(str)`çæ¶åï¼å符串被以å符为å使å¼ï¼ç¶å追å å°laéé¢ã
妿extendçå¯¹è±¡æ¯æ°å¼åï¼åæ¥éã
extendç对象æ¯ä¸ä¸ªå表ï¼å¦ææ¯å符串ï¼åPythonä¼å
æå®æç
§å符为åä½è½¬å为å表å追å å°å·²ç¥å表åé¢ã
ä¸è¿ï¼å«å¿è®°äºåé¢å®æ¹ææ¡£çååå¥è¯ï¼å®çæææ¯ï¼
>>> la = [1, 2, 3, 'a', 'b', 'c']
>>> lb = ['qiwsir', 'python']
>>> la[len(la):]=lb
>>> la
[1, 2, 3, 'a', 'b', 'c', 'qiwsir', 'python']
`list.extend(L)` çæäº `list[len(list):] = L`ï¼Læ¯å¾
å¹¶å
¥çå表ã
èæ³å°å°[ä¸ä¸è®²](./111.md)ä¸çä¸ä¸ªlist彿°`list.append()`ï¼æç±»ä¼¼ä¹å¤ã
>extend(...)
> L.extend(iterable) -- extend list by appending elements from the iterable
ä¸é¢æ¯å¨äº¤äºæ¨¡å¼ä¸è¾å
¥`help(list.extend)`åå¾å°ç说æãè¿æ¯é常éè¦èä¸ç®åçè·å¾ææ¡£å¸®å©çæ¹æ³ã
è¯¥ææ¡£ä¸åºç°äºiterableï¼ä»ä¹æ¯iterableï¼è¿ä¸ªä»ç°å¨å¼å§ï¼ä¼ç»å¸¸éå°ï¼æä»¥æ¯è¦æææ¸
æ¥çã
>iterableï¼ä¸æå«ä¹æ¯âå¯è¿ä»£çâãå¨Pythonä¸ï¼è¿æä¸ä¸ªè¯ï¼å°±æ¯iteratorï¼è¿ä¸ªå«åâè¿ä»£å¨âãè¿ä¸¤è
æçåºå«åèç³»ãä¸è¿ï¼è¿éæä¸ä¸è¯´é£ä¹å¤ï¼è¯´å¤äºå°±å®¹æç³æ¶ï¼æä¹ç³æ¶äºã
为äºè§£éiterable(å¯è¿ä»£ç)ï¼åå¼å
¥äºä¸ä¸ªè¯âè¿ä»£âï¼ä»ä¹æ¯è¿ä»£å¢ï¼
>尽管æä»¬å¾å¤ææ¡£æ¯ç¨è±æåçï¼ä½æ¯ï¼å¦æä½ è½å
åå©ç¨æ±è¯æ¥çè§£æäºåè¯ï¼æ¯é常æå¸®å©çãå ä¸ºå¨æ±è¯ä¸ï¼ä¸ä»
ä»
表é³ï¼èä¸è½ä»è¯è¯ç»åä¸ä½ä¼å°è¯¥æ¯è¯çå«ä¹ãæ¯å¦âæ¿å
âï¼è¿æ¯æ±è¯ãè±è¯æ¯ä»"light amplification by stimulated emission of radiation"ååºæ¥ç"laser"ï¼å®æ¯ä¸ä¸ªé åºæ¥çè¯ãå 为æ¤å人们ä¸ç¥éé£ç§æ¡ä»¶ä¸ååºæ¥çæ¯ä»ä¹ã使¯æ±è¯ä¸ç¶ï¼åæ£ç¨ä¸ä¸ªâå
âå°±å¯ä»¥æ¦æ¬äºï¼åªä¸è¿è¿ä¸ªâå
â䏿¯ä¼ ç»æ¦å¿µä¸çâå
âï¼èæ¯ç±äºâåæ¿âè¾å°å¾å°çå
ï¼æ
åâæ¿å
âãæ¯ä¸æ¯æ±è¯å¾çåï¼
>âè¿â卿±è¯ä¸çæææ¯â屡次ï¼åå¤âãå¦:髿½®è¿èµ·ãé£ä¹è·â代âç»åï¼å°±å¯ä»¥ç解为âåå¤â代ââï¼æ¯ä¸æ¯æç¹âååååâçææäºï¼âç»å©-çå-åæé¿-ç»å©-çå-åæé¿-...âï¼ä½ æ¯ä¸æ¯ä¹å¨è¿ä¸ªâè¿ä»£âçè¿ç¨ä¸å¢ï¼
>ç»ä¸ªç¨å¾®ä¸¥æ ¼çå®ä¹ï¼æ¥èªç»´åºç¾ç§ãâè¿ä»£æ¯éå¤åé¦è¿ç¨çæ´»å¨ï¼å
¶ç®çé常æ¯ä¸ºäºæ¥è¿å¹¶å°è¾¾æéçç®æ æç»æãâ
æäºç±»åç对象æ¯âå¯è¿ä»£â(iterable)çï¼è¿ç±»æ°æ®ç±»åæå
±åçç¹ç¹ãå¦ä½å¤æä¸ä¸ªå¯¹è±¡æ¯ä¸æ¯å¯è¿ä»£çï¼ä¸é¢æ¼ç¤ºä¸ç§æ¹æ³ãäºå®ä¸è¿æå«çæ¹å¼ã
>>> astr = "python"
>>> hasattr(astr, '__iter__')
False #Python2è¿åçç»æã妿æ¯Python3è¿åTrue.
è¿éç¨å
å»ºå½æ°`hasattr()`夿ä¸ä¸ªå符串æ¯å¦æ¯å¯è¿ä»£çï¼å¨Python 2ä¸è¿åäºFalseï¼å¨Python 3ä¸è¿åäºTrueãé£ä¹ï¼è¿é似乿ä¸ä¸ªçç¾çå½é¢ï¼ä¸ä¸ªå符串ï¼å¨ä¸åçPythonçæ¬ä¸ï¼ä¸ºä»ä¹ä¸ä¸æ ·å¢ï¼è¯·ç»§ç»é
读ã
ç¨åæ ·çæ¹å¼å¯ä»¥å¤æï¼
>>> alst = [1, 2]
>>> hasattr(alst, '__iter__')
True
>>> hasattr(3, '__iter__')
False
`hasattr()`ç夿æ¬è´¨å°±æ¯çé£ä¸ªç±»å䏿¯å¦æ`__iter__`彿°ã读è
å¯ä»¥ç¨`dir()`æ¾ä¸æ¾ï¼å¨æ°åãå符串ãå表ä¸ï¼è°æ`__iter__`ãåæ ·è¿å¯æ¾ä¸æ¾`dict`å`tuple`两ç§ç±»å对象æ¯å¦å«æè¿ä¸ªæ¹æ³ã
å¦æä½ ä½¿ç¨çæ¯Pyhon 2ï¼å¨`dir(str)`æ¯æ æ³åç°`__iter__`çã使¯ï¼å¨Python 3ä¸ï¼åå¯ä»¥å¨`dir(str)`çç»æä¸çå°`__iter__`ãè¿ä¹æ¯ä¸ºä»ä¹å¨Python 3ä¸ï¼`hasattr(astr, '__iter__')`è¿å`True`çåå ã
å°åé¢çææå¯¹äºå符串çæä½ï¼ä½ è¿è´¯èµ·æ¥çä¸ä¸ï¼å¨Python 2ä¸ï¼ä¸è®¤ä¸ºå®æ¯å¯è¿ä»£çï¼è¿æ¯é对å符串æ¬èº«èè¨ï¼ç¶è妿坹å®è¿è¡äºåºç¨äºå¯è¿ä»£å¯¹è±¡çæä½ï¼å®åè½æ£å¸¸è¿è¡ï¼å 为Pythonæå符串åäºèªå¨è½¬åï¼å æ¤Python 3ä¸å¹²è顺水æ¨èï¼æè¿ä¸ªè¿ç¨ä¸æ°åµæã让å®ä¹å
·æ`__iter__`屿§äºã
以ä¸ç©¿æäºä¸ä¸ªæ°çæ¦å¿µâiterableâï¼å¯è¿ä»£çï¼ï¼ç°å¨åå°`extend()`ä¸ãè¿ä¸ªå½æ°éè¦çåæ°å°±æ¯iterableç±»åç对象ã
>>> new = [1, 2, 3]
>>> lst = ['python', 'qiwsir']
>>> lst.extend(new)
>>> lst
['python', 'qiwsir', 1, 2, 3]
>>> new
[1, 2, 3]
è¿è¦å
³æ³¨å表lstçååãlstç»è¿extend彿°æä½ä¹åï¼åæäºä¸ä¸ªè²ä¼¼âæ°âçå表ãè¿å¥è¯æç¹å«æï¼âè²ä¼¼æ°âçï¼ä¹æä»¥è¿ä¹è¯´ï¼æ¯å ä¸ºå¯¹âæ°çâå¯è½æä¸åççè§£ã
ä¸å¦¨æ·±æä¸ä¸ã
>>> new = [1, 2, 3]
>>> id(new)
3072383244L
>>> lst = ['python', 'qiwsir']
>>> id(lst)
3069501420L
ç¨`id()`è½å¤çå°ä¸¤ä¸ªå表åå«å¨å
åä¸çâçªâçç¼å·ã
>>> lst.extend(new)
>>> lst
['python', 'qiwsir', 1, 2, 3]
>>> id(lst)
3069501420L
注æå°æ²¡æï¼è½ç¶lstç»è¿`extend()`æ¹æ³ä¹åï¼æ¯åæ¥æ©å®¹äºï¼ä½æ¯ï¼å¹¶æ²¡æç¦»å¼åæ¥çâçªâï¼ä¹å°±æ¯å¨å
åä¸ï¼è¿æ¯âæ§âçï¼åªä¸è¿éé¢çå
容å¢å¤äºãç¸å½äºä¸¤å£ä¹å®¶ï¼ç»è¿ä¸çªäºé¨ä¹åï¼åå¢å äºä¸ä¸ªå°å®å®ï¼é£ä¹è¿ä¸ªå®¶æ¯âæ°âçè¿æ¯âæ§âçå¢ï¼è§åº¦ä¸åæè®¸è¯´æ³ä¸ä¸äºã
è¿å°±æ¯å表çä¸ä¸ª**éè¦ç¹å¾ï¼å表æ¯å¯ä»¥ä¿®æ¹çãè¿ç§ä¿®æ¹ï¼ä¸æ¯å¤å¶ä¸ä¸ªæ°çï¼èæ¯å¨åå°è¿è¡ä¿®æ¹ã**
å
¶å®ï¼`append()`对å表çæä½ä¹æ¯å¦æ¤ï¼ä¸å¦¨ç¨åæ ·çæ¹å¼ççã
**说æï¼**è½ç¶è¿éçlstå
容åä¸é¢ç䏿 ·ï¼ä½æ¯ï¼æä»æ°å¨shellä¸è¾å
¥ï¼æä»¥idä¼ååãä¹å°±æ¯å
ååé
çâçªâçç¼å·åäºã
>>> lst = ['python', 'qiwsir']
>>> id(lst)
3069501388L
>>> lst.append(new)
>>> lst
['python', 'qiwsir', [1, 2, 3]]
>>> id(lst)
3069501388L
æ¾ç¶ï¼`append()`乿¯åå°ä¿®æ¹å表ã
>>> lst.extend("itdiffer")
>>> lst
['python', 'qiwsir', 'i', 't', 'd', 'i', 'f', 'f', 'e', 'r']
宿ä¸ä¸ªå符串`"itdiffer"`转å为`['i', 't', 'd', 'i', 'f', 'f', 'e', 'r']`ï¼ç¶åå°è¿ä¸ªå表ä½ä¸ºåæ°ï¼æä¾ç»`extend()`ï¼å¹¶å°å表ä¸çå
ç´ å¡å
¥åæ¥çå表ä¸ã
è¿é讲述ç两个让å表æ©å®¹ç彿°`append()`å`extend()`ï¼å®ä»¬çå
±åç¹æ¯âé½è½åå°ä¿®æ¹å表âã
对äºâåå°ä¿®æ¹âè¿åºè¯¥å¢å ä¸ä¸ªçè§£ââæ²¡æè¿åå¼ã
åå°ä¿®æ¹æ²¡æè¿åå¼ï¼å°±ä¸è½èµå¼ç»æä¸ªåéã
>>> one = ["good","good","study"]
>>> another = one.extend(["day","day","up"]) #å¯¹äºæ²¡ææä¾è¿åå¼ç彿°ï¼å¦æè¦è¿æ ·ï¼ç»ææ¯ï¼
>>> print anthor #æå°åéanotherçå¼ã妿æ¯Python3åè¾å
¥print(another)
None #è¿å为None, one.extend()没æè¿åå¼ï¼å³æ¯None.
>>> one
['good', 'good', 'study', 'day', 'day', 'up']
`append()`å`extend()`çåºå«å¢ï¼çä¸é¢ä¾åï¼
>>> lst = [1,2,3]
>>> lst.append(["qiwsir","github"])
>>> lst
[1, 2, 3, ['qiwsir', 'github']] #appendçç»æ
>>> len(lst)
4
>>> lst2 = [1,2,3]
>>> lst2.extend(["qiwsir","github"])
>>> lst2
[1, 2, 3, 'qiwsir', 'github'] #extendçç»æ
>>> len(lst2)
5
appendæ¯æ´å»ºå¶å°è¿½å ï¼extendæ¯ä¸ªä½åæ©ç¼ã
###count
`count()`æ¯ä¸ä¸ªå¸®çæä»¬å¼æ¸
æ¥å表ä¸å
ç´ éå¤åºç°æ¬¡æ°çæ¹æ³ã宿¹ææ¡£æ¯è¿ä¹è¯´çï¼
>list.count(x)
>Return the number of times x appears in the list.
ä¸å®è¦ä¸æå®éªï¼æè½çè§£ææ¡£ä¸ç²¾ç¼ç表达ã
>>> la = [1,2,1,1,3]
>>> la.count(1)
3
>>> la.append('a')
>>> la.append('a')
>>> la
[1, 2, 1, 1, 3, 'a', 'a']
>>> la.count('a')
2
>>> la.count(2)
1
>>> la.count(5) #la䏿²¡æ5ï¼ä½æ¯å¦æç¨è¿ç§æ¹æ³æ¾ï¼ä¸æ¥éï¼è¿åçæ¯æ°å0
0
###index
[ãå表(1)ã](./111.md)ä¸å·²ç»æå°ï¼è¿éä¸èµè¿°ï¼ä½æ¯ä¸ºäºå®æ´ï¼ä¹å 个ä½ç½®å§ã
>>> la
[1, 2, 3, 'a', 'b', 'c', 'qiwsir', 'python']
>>> la.index(3)
2
>>> la.index('qi') #妿ä¸åå¨ï¼å°±æ¥é
Traceback (most recent call last):
File "", line 1, in
ValueError: 'qi' is not in list
>>> la.index('qiwsir')
6
`x`æ¯å表ä¸çä¸ä¸ªå
ç´ ï¼`list.index(x)`è½å¤æ£ç´¢å°è¯¥å
ç´ å¨å表ä¸ç¬¬ä¸æ¬¡åºç°çä½ç½®ãè¿ææ¯çæ£çç´¢å¼ï¼æ³¨æé£ä¸ªè±æåè¯indexã
ä¾ç¶æ¯ä¸ä¸æ¡å®æ¹è§£éï¼
>list.index(x)
>Return the index in the list of the first item whose value is x. It is an error if there is no such item.
æ¯ä¸æ¯è¯´çé常æ¸
æ¥æç½äºï¼
ä¸åºä¼æ¯ï¼ä¸èç»§ç»åè¡¨çæ¹æ³ã
------
[æ»ç®å½](./index.md) | [ä¸èï¼å表(1)](./111.md) | [ä¸èï¼å表(3)](./113.md)
å¦æä½ è®¤ä¸ºæå¿
è¦æèµæï¼è¯·éè¿æ¯ä»å®ï¼**[email protected]**,ä¸èææ¿ã