>å 为è¶ååèµäººæºæ §ï¼ç¥è¯åèªæé½ç±ä»å£èåºãä»ç»æ£ç´äººåççæºæ §ï¼ç»è¡ä¸ºçº¯æ£ç人ä½ç¾çï¼ä¸ºè¦ä¿å®å ¬å¹³äººçè·¯ï¼æ¤åºèæ¬äººçéãä½ ä¹å¿ æç½ä»ä¹ãå ¬å¹³ãæ£ç´ï¼ä¸åçåéãæºæ §å¿ å ¥ä½ å¿ï¼ä½ ççµè¦ä»¥ç¥è¯ä¸ºç¾ãè°ç¥å¿ æ¤å«ä½ ï¼èªæå¿ ä¿å®ä½ ï¼è¦æä½ è±ç¦»æ¶éï¼æ³¨ï¼æä½âæ¶äººçéâï¼ï¼è±ç¦»è¯´ä¹è°¬è¯ç人ã(ç®´è¨ä¹¦ 2:6-12) #zip()è¡¥å å¨[ãè¯å¥ï¼4ï¼ã](./124.md)ä¸ï¼å¯¹zip()è¿è¡äºéè¿°ï¼ä½æ¯ï¼ç±äºç¯å¹ éå¶ï¼æ²¡æéè¿°çå¤ªå®æ´ãæä»¥ï¼æ¬è®²å次å°å®æ¿åºæ¥ï¼å¸æè½å¤æä¸ä¸ªå®æçç¬ç«éè¿°ï¼ä»¥ä¾¿å¦ä¹ è åèã ##å å»ºå½æ°zip() zip()æ¯ä¸ä¸ªå å»ºå½æ°ï¼å¯¹å®çæè¿°ä¸ºï¼ >zip(*iterables) >Make an iterator that aggregates elements from each of the iterables. >Returns an iterator of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables. The iterator stops when the shortest input iterable is exhausted. With a single iterable argument, it returns an iterator of 1-tuples. With no arguments, it returns an empty iterator. zip()çåæ°æ¯å¯è¿ä»£å¯¹è±¡ãä¾å¦ï¼ >>> colors = ["red", "green", "blue"] >>> values = [234, 12, 89, 65] >>> for col, val in zip(colors, values): ... print (col, val) #Python 3: print((col, val)) ... ('red', 234) ('green', 12) ('blue', 89) 注æè§å¯ï¼zip()èªå¨è¿è¡äºå¹é ï¼å¹¶ä¸æå¼ä¸å¯¹åºç项ã ##åæ°`*iterables` è¿æ¯`zip()`çéè«å°æã ææ¡£ä¸æ¾ç¤º`zip()`çåæ°ä½¿`*iterables`ï¼è¿æ¯ä»ä¹ææå¢ï¼ å¨ [ã彿°ï¼3ï¼ã](./203.md) ä¸ï¼è®²è¿°âåæ°æ¶éâåâå¦å¤ä¸ç§ä¼ å¼âæ¹æ³æ¶ï¼éå°è¿ç±»ä¼¼çåæ°ï¼æå ¶ä¸ä¸ä¸ªä¾ååæ¿åºæ¥æ¬£èµï¼ >>> def add(x,y): ... return x + y ... >>> add(2,3) 5 >>> bars = (2,3) >>> add(*bars) 5 `zip()`ä¹ç±»ä¼¼ä¸é¢ç¤ºä¾ä¸æé çé£ä¸ª`add()`彿°ã >>> dots = [(1, 2), (3, 4), (5, 6)] >>> x, y = zip(*dots) >>> x (1, 3, 5) >>> y (2, 4, 6) å©ç¨è¿ä¸ªåè½ï¼å°±æ¯è¾å®¹æå®ç°ç©éµç转置äºãè¡¥å ï¼å ³äºç©éµçç¥è¯ï¼å¯ä»¥åé ç»´åºç¾ç§è¯æ¡ï¼[ç©éµ](https://zh.wikipedia.org/zh/%E7%9F%A9%E9%98%B5) >>> m = [[1, 2], [3, 4], [5, 6]] >>> zip(*m) #Python 3: list(zip(*m)) [(1, 3, 5), (2, 4, 6)] ä¸é¢åçä¸ä¸ªæç¹ç»ä¸½çï¼ >>> seq = range(1, 10) >>> zip(*[iter(seq)]*3) #Python 3: list(zip(*[iter(seq)]*3)) [(1, 2, 3), (4, 5, 6), (7, 8, 9)] æè§æç¹å¤ªç«é ·äºï¼ä¸æ¯å¤ªå¥½çè§£ãå ¶å®ï¼åè§£ä¸ä¸ï¼å°±æ¯ï¼ >>> x = iter(range(1, 10)) >>> zip(x, x, x) # Python 3: list(zip(x, x, x) ) [(1, 2, 3), (4, 5, 6), (7, 8, 9)] è¿ç§ç«é ·ç代ç ï¼æä¸æå¡åºç¨å°ç¼ç¨å®è·µä¸ï¼è¿éä» ä» æ¯å±ç¤ºä¸ä¸`zip()`ç使ç¨ç½¢äºã å ³äºå¨åå ¸ä¸ä½¿ç¨`zip()`å°±ä¸åè¿å¤ä»ç»äºï¼å ä¸ºå¨ [ãè¯å¥ï¼4ï¼ã](./124.md) ä¸å·²ç»åäºå®æ´éè¿°ã ##æ´é ·çç¤ºä¾ æåï¼å±ç¤ºä¸ä¸ªæ¥èªç½ç»ç示ä¾ï¼æè®¸å¨æäºæ¶åç¨ä¸ä¸ï¼è½å¤äººåç«èã >>> a = [1, 2, 3, 4, 5] >>> b = [2, 2, 9, 0, 9] >>> map(lambda pair: max(pair), zip(a, b)) #Python 3: list(map(lambda pair: max(pair), zip(a, b))) [2, 2, 9, 4, 9] åèï¼ - http://pavdmyt.com/python-zip-fu/ - https://bradmontgomery.net/blog/2013/04/01/pythons-zip-map-and-lambda/ ------ [æ»ç®å½](./index.md) | [ä¸èï¼å½æ°ç»ä¹ ](./205.md) | [ä¸èï¼å½å空é´](./241.md) å¦æä½ è®¤ä¸ºæå¿ è¦æèµæï¼è¯·éè¿æ¯ä»å®ï¼**[email protected]**,ä¸èææ¿ã