国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

扁平化列表,哪個方法更快?

開發 前端
在平時的編碼過程中,經常會碰到嵌套列表扁平化的需求,比如說把列表[[1,2,3],[4,5]] 變成 [1,2,3,4,5],Python 有很多方法可以實現這一功能,到底哪個方法更快呢?

[[433688]]

在平時的編碼過程中,經常會碰到嵌套列表扁平化的需求,比如說把列表[[1,2,3],[4,5]] 變成 [1,2,3,4,5],Python 有很多方法可以實現這一功能,到底哪個方法更快呢?我們今天就來試一試。

第一種方法:建一個空列表,遍歷嵌套列表把元素逐一放入并返回:

  1. def flatten1(lst: List[list]) -> list: 
  2.     flat = [] 
  3.     for l in lst: 
  4.         for x in l: 
  5.             flat.append(x) 
  6.     return flat 

第二種方法:使用列表推導式:

  1. def flatten2(lst: List[list]) -> list: 
  2.     return [x for l in lst for x in l] 

第三種方法:使用列表的 extend 方法:

  1. def flatten3(lst: List[list]) -> list: 
  2.     flat = [] 
  3.     for l in lst: 
  4.         flat.extend(l) 
  5.     return flat 

第四種方法:使用 + 號:

  1. def flatten4(lst: List[list]) -> list: 
  2.     flat = [] 
  3.     for l in lst: 
  4.         flat += l 
  5.     return flat 

第五種方法:使用 itertools.chain:

  1. def flatten5(lst: List[list]) -> list: 
  2.     return list(itertools.chain.from_iterable(lst)) 

第六種方法:使用 functools.reduce:

  1. def flatten6(lst: List[list]) -> list: 
  2.     return functools.reduce(operator.iconcat, lst, []) 

你可以先猜一下,然后看看下面的運行結果:

  1. import functools 
  2. import itertools 
  3. import operator 
  4. import random 
  5. import time 
  6. from typing import List 
  7.  
  8. def flatten1(lst: List[list]) -> list: 
  9.     flat = [] 
  10.     for l in lst: 
  11.         for x in l: 
  12.             flat.append(x) 
  13.     return flat 
  14.  
  15. def flatten2(lst: List[list]) -> list: 
  16.     return [x for l in lst for x in l] 
  17.  
  18. def flatten3(lst: List[list]) -> list: 
  19.     flat = [] 
  20.     for l in lst: 
  21.         flat.extend(l) 
  22.     return flat 
  23.  
  24. def flatten4(lst: List[list]) -> list: 
  25.     flat = [] 
  26.     for l in lst: 
  27.         flat += l 
  28.     return flat 
  29.  
  30. def flatten5(lst: List[list]) -> list: 
  31.     return list(itertools.chain.from_iterable(lst)) 
  32.  
  33. def flatten6(lst: List[list]) -> list: 
  34.     return functools.reduce(operator.iconcat, lst, []) 
  35.                             # += 
  36.  
  37. def time_f(f): 
  38.     elapsed = 0.0 
  39.     n = 100 
  40.     M = 1000 
  41.     N = 100 
  42.     for _ in range(n): 
  43.         lst = [[random.randint(0,1000000) for j in range(N)] for i in range(M)] 
  44.         start = time.perf_counter() 
  45.         f(lst) 
  46.         elapsed += time.perf_counter() - start 
  47.     print(f"{f.__name__} cost {elapsed/n * 1000 :.4f} ms"
  48.  
  49. if __name__ == '__main__'
  50.     time_f(flatten1) 
  51.     time_f(flatten2) 
  52.     time_f(flatten3) 
  53.     time_f(flatten4) 
  54.     time_f(flatten5) 
  55.     time_f(flatten6) 

運行環境:Python 3.8.5,運行結果如下:

 

結果:前兩種方法比較慢,不推薦使用,后面四種方法差別不大,隨你挑。

 

責任編輯:武曉燕 來源: Python七號
相關推薦

2013-09-22 15:03:27

扁平化UI設計

2013-09-22 15:43:27

扁平化UI設計

2013-09-22 14:47:50

扁平化UI設計

2013-09-22 14:56:26

扁平化UI設計

2013-09-22 14:30:43

扁平化設計

2013-09-22 16:17:59

扁平化UI設計

2013-09-22 16:36:07

扁平化UI設計

2013-09-22 16:22:58

扁平化UI設計

2019-04-08 16:29:28

多云扁平化云計算

2013-09-23 10:16:04

扁平化UI設計

2013-07-11 09:45:48

扁平化扁平化設計

2013-09-22 16:30:13

扁平化UI設計

2013-06-09 11:04:07

設計扁平化設計平面化設計

2013-09-25 10:52:27

Android 4.4扁平化

2013-01-28 09:39:05

用戶界面扁平化設計

2020-09-16 14:17:42

flat方法

2013-09-22 15:09:04

扁平化UI設計

2010-10-25 13:58:48

2010-10-25 14:16:59

扁平化網絡

2012-02-20 14:48:30

網絡扁平化
點贊
收藏

51CTO技術棧公眾號

中文字幕 91| 久久视频这里只有精品| 久久99九九| 欧美日韩伦理一区二区| 五月婷婷导航| a毛片不卡免费看片| 久久久五月婷婷| 国产麻豆日韩| 欧美电影在线观看完整版| 在线不卡的av| 欧美写真视频一区| 国产高清在线精品| 亚洲最大的网站| 午夜精品在线| 亚洲天堂av在线免费| 精品影院一区| 亚洲码国产岛国毛片在线| 手机福利在线视频| 国产精品视频久久一区| 久久久久成人网| 成人午夜sm精品久久久久久久| 欧亚一区二区三区| 羞羞视频网站在线免费观看| 丁香天五香天堂综合| 艳色歌舞团一区二区三区| 亚洲影院免费| 国产亚洲福利社区| 国产精品草草| 蜜桃麻豆91| 黄色影院一级片| 日韩精品一区二区三区中文在线 | 亚洲丝袜另类动漫二区| avav在线播放| 2021国产精品久久精品| 女人色极品影院| 国产91精品一区二区麻豆网站| 特大黑人娇小亚洲女mp4| 久久精品国产一区二区| 欧美日韩亚洲国产成人| 国产激情91久久精品导航| 亚洲中文字幕无码一区二区三区| 国产成人精品免费在线| 一级二级三级欧美| 91麻豆免费观看| 激情婷婷丁香| 欧美精品第1页| 你懂得影院夜精品a| 亚州av一区二区| 欧美.www| 九九热只有这里有精品| 中文字幕字幕中文在线中不卡视频| 在线播放的av| 日韩精品一区二区三区四区 | 青青草视频在线免费直播| 亚洲va欧美va天堂v国产综合| 成全电影播放在线观看国语| 精品视频在线免费观看| 九九99久久精品在免费线bt| 91免费高清视频| 久久久久国产精品人| 成人在线免费公开观看视频| 久久精品国亚洲| 欧美午夜电影在线观看| 欧美 丝袜 自拍 制服 另类| 富二代精品短视频| 日韩在线免费| 神马影院我不卡| 一卡二卡三卡日韩欧美| 成人ssswww在线播放| 91在线播放视频| 午夜精品aaa| 欧美男人操女人视频| 亚洲精品永久www嫩草| 色94色欧美sute亚洲13| 精品久久影视| jizzjizzjizz亚洲日本| 一区二区三区亚洲| 国产精品视频一区二区久久| 国产精品第100页| 亚洲丝袜精品丝袜在线| 97久久中文字幕| 欧美日韩亚洲国产成人| 菠萝蜜视频在线观看入口| 91精品中文字幕一区二区三区| 久久久久久久久丰满| 黄色免费影视| 国产主播在线一区| 亚洲成人免费视频| 中文成人激情娱乐网| 爽爽免费视频| 中文字幕日韩专区| 亚洲日本青草视频在线怡红院| 国产日韩欧美在线视频观看| 精品一区二区电影| 国产自产v一区二区三区c| 黄色激情在线视频| 成人黄色影片在线| 精品久久久av| 在线视频亚洲| 亚洲精品第一国产综合野草社区| 欧美不卡三区| 亚洲成人在线网| 午夜精品福利一区二区三区av| www.成人网.com| 蜜臀av一区二区在线观看| 日韩欧国产精品一区综合无码| 婷婷六月天在线| 亚洲第一导航| 五月亚洲婷婷| 精品免费久久久久久久| 国产精品网站大全| 久久人91精品久久久久久不卡| 国产一区二区三区在线观看网站| 亚洲欧美偷拍三级| 一本色道久久综合亚洲精品酒店 | 日本韩国欧美| 成人天堂入口网站| 国产在线欧美日韩| 欧美xxxx18性欧美| 欧美日韩aaaaaa| 亚洲九九爱视频| 国产成人在线视频播放| 欧美日韩a区| 粉嫩久久久久久久极品| 任你弄在线视频免费观看| 国产夫妻视频| 丝袜人妻一区二区三区| 国产精品国模大尺度私拍| 欧美激情一级欧美精品| 一本色道久久88亚洲综合88| 精品视频一二| 久久综合久久综合这里只有精品| 欧美激情性做爰免费视频| 亚洲欧美日韩国产成人| 欧美一区二区三区小说| 亚洲不卡一区二区三区| 国产色91在线| 国产成人免费av在线| 日韩精品一级中文字幕精品视频免费观看 | 久久不见久久见中文字幕免费 | 正在播放亚洲一区| 精品久久久在线观看| 一区二区三区四区视频精品免费| 337p粉嫩大胆色噜噜噜噜亚洲| 三级在线观看一区二区| 美女久久一区| 免费精品99久久国产综合精品| 亚洲青涩在线| 国产精品a级| 99热这里只有精品8| 西西人体一区二区| 欧美a级理论片| 成人性生交大片免费| 久久久亚洲高清| 国产精品另类一区| 精品人伦一区二区三区蜜桃网站 | 亚洲成在人线在线播放| 精品亚洲成人| 亚洲黄页网站| 99久久99热这里只有精品| 清纯唯美日韩| 久久久国产精品| 狂野欧美一区| 蜜桃久久精品一区二区| 久久亚洲综合| 国产精品久久毛片a| 中文字幕色av一区二区三区| 国产婷婷色一区二区三区| 久久精品亚洲精品国产欧美kt∨| 欧美激情中文字幕| 欧美日韩亚洲高清| 亚洲激情视频在线观看| 日韩国产精品一区| 欧美疯狂性受xxxxx另类| 国产美女久久精品| αv一区二区三区| 丰满人妻一区二区三区53号| 亚洲激情在线观看视频| 可以在线观看的av网站| 青青青国内视频在线观看软件| 国产66精品| 六月丁香婷婷久久| 色婷婷激情一区二区三区| 亚洲三级免费看| 成人国产精品av| 97免费视频观看| 任你弄在线视频免费观看| 亚洲不卡av不卡一区二区| 国产成人亚洲综合a∨婷婷图片| 亚洲成人av免费| 欧美日韩国产成人在线| 日本黑人久久| 调教视频免费在线观看| 亚洲人亚洲人色久| 91香蕉视频污| 亚洲天堂av在线免费| 好吊色欧美一区二区三区四区 | 午夜在线观看视频| 成人激情免费视频| av网站在线看|