zip() åè½æ¯ä»åæ°çå¤ä¸ªè¿ä»£å¨ä¸éåå ç´ ç»åæä¸ä¸ªæ°çè¿ä»£å¨ã顾åæä¹ï¼å®å°±æ¯ä¸ä¸ªå°å¯¹è±¡è¿è¡æå å解å çå½æ°ã
å®å¯ä»¥ä¼ å ¥çåæ°å æ¬ï¼å ç»ãå表ãåå ¸çè¿ä»£å¨
å®è¿åä¸ä¸ªzip对象ï¼å ¶å é¨å ç´ ä¸ºå ç»ï¼ä¸ç»ä¸ç»çï¼å¯ä»¥è½¬å为å表æå ç»ï¼è¿éè¦å¼ºè°ä¸ä¸ï¼Python2åPython3ä¸è¿åçzip对象ææä¸åã
Python3ä¸zip()å½æ°åä¸åè¿ålist对象ï¼ä½æ¯å¯ä»¥éè¿list强è¡è½¬æ¢ãï¼ç±»ä¼¼çå½æ°ååè¿ædictionaryå ³èçkeys()ãvalues()ãitems()ï¼map()ï¼filter()ï¼ã
æå zip(iterables)
ä¸é¢ç代ç 使ç¨çç¯å¢æ¯Python3.6ï¼å ¶ä¸list (z)æä½å°±æ¯å¼ºå¶è½¬æ¢ã注æä¸ä¸ªé®é¢ï¼aåbè¿ä¸¤ä¸ªå表æ¯ä¸åé¿ççï¼è¿æ¶åzipå½æ°å°±ä¼å¹é å®æççé£ä¸ªä¾¿ç»æã
å½zipå½æ°çåæ°åªæä¸ä¸ªæ¶ï¼å®å°ä»iterableä¸ä¾æ¬¡åä¸ä¸ªå ç´ ï¼ç»æä¸ä¸ªå ç»ã
解å zip(*iterables)
解å ï¼zip ç¸åï¼å¯ç解为解åï¼è¿åå¤ç»´ç©éµå½¢å¼ï¼æå 个ç»å ç´ å°±è¿åå ç»´çã
æ¯å¦ï¼ä¸é¢ææ¯ç¨ä¸ä¸ªå表ç»åèµ·æ¥çè¿ä»£å¼ï¼é£ä¹è§£ååå°±è¿åä¸ç»´çç©éµ
zipé«çº§ç¨æ³
讲å®äºåºæ¬çåæ¥è¯´ä¸ä¸è¯¥å½æ°çé«çº§ç¨æ³ãé«çº§ç¨æ³ç¦»ä¸å¼ä¸ä¸ªè¯ï¼Pythonicï¼å°±æ¯å°ä»£ç åçæ´ä¼é ç¾è§ï¼çèµ·æ¥æé¼æ ¼ï¼
1. å表æ¨å¯¼
ä¾å¦ï¼
a = [1,2,3,4]
b = [5,6,7,8]
æ们è¦åæ¶éåaãbï¼ä¸è¦å¯¹å®ä»¬è¿è¡æä½ï¼é£å°±è¦æ¾å¨åä¸ä¸ªfor循ç¯å ï¼zipå½æ°æ£å¥½åé
注æï¼å¦ææ¯Python2ç¯å¢ä¸ï¼è¦ä½¿ç¨izipæè½æé«æçã
å½ç¶ï¼å¦æä½ éè¦å¯¹ä¸æ è¿è¡æä½ï¼é£ä¹è¿éè¦å ä¸enumerateå½æ°
2. 使ç¨zipå建é®å¼å¯¹ï¼zipæ¹æ³è¿åçæ¯ä¸ä¸ªå ç»ï¼ç¨å®æ¥å建é®å¼å¯¹ï¼ç®åæäºã