Python map和列表推導效率比較
直接來測試程式碼吧:
#!/usr/bin/env python # -*- coding: utf-8 -*- # list comprehension and map import time def test(f, name): st = time.time() f() print '%s %ss'%(name, time.time()-st) TIMES = 1000 ARR = range(10000) def tmap(): i = 0 while (i<TIMES): map(lambda x:x, ARR) i = i+1 def tlst(): i = 0 while (i<TIMES): [x for x in ARR] i = i+1 test(tmap, "map") test(tlst, "lst")
在我電腦上的測試結果:
map 1.06299996376s
lst 0.296000003815s
很明顯列表推導比map操作會快很多,都三倍速度了
相關推薦
Python map和列表推導效率比較
直接來測試程式碼吧: #!/usr/bin/env python # -*- coding: utf-8 -*- # list comprehension and map import time def test(f, name): st = time.time()
python中:生成器表示式和列表推導式的比較
l = [2, 3, 5, 7] l2 = [x ** 2 + 1 for x in l] it = iter(l2) print(next(it)) # ? l[1] = 30 print
python3 map,filter和列表推導式
map對象 UNC 所有 port red 列表 lte fun ont num_list = [11,2,-33,10,7,3,5,43] 1、filter 函數 獲取num_list大於5的元素,並返回列表 用lambda表達式實現:
python之生成器和列表推導式
一、生成器函式1、生成器:就是自己用python程式碼寫的迭代器,生成器的本質就是迭代器(所以自帶了__iter__方法和__next__方法,不需要我們去實現)。2、用以下兩種方式構建一個生成器:1,生成器函式:跟常規函式定義類似,但是,使用yield語句而不是return語句返回結果。yield語句
python基礎之列表推導式
color 大小寫 enc div 集合 基礎 整除 列表推導 pytho 1、列表推導式 1.1、求0~29之間能被3整除的數 ret = [i for i in range(30) if i%3 ==0] print(ret) 輸出結果: [0, 3, 6,
String 類型equals方法和int == 方法效率比較
方法 新建 錯誤 == 總數 進行 差距 拆裝箱 自己 最近寫了一個遞歸方法,在進行比較判斷的時候,因為都是integer類型,而integer類型在大於127或者小於-128時會在新建一個,這是因為integer類型的拆裝箱機制, 之前沒有考慮過equals方法和 =
Python-入門-11-列表推導式
微信公眾號原文 系統:Windows 7 語言版本:Anaconda3-4.3.0.1-Windows-x86_64 編輯器:pycharm-community-2016.3.2 從一個列表如何得出一個新的列表? Part 1:問題
memcpy 和 snprintf的效率比較
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char **argv) { char *name="17008.1000.32.34.
【python基礎】列表推導式
所謂的列表推導式,就是指的輕量級迴圈建立列表 1. 基本的方式 In [9]: a = [x for x in range(4)] In [10]: a Out[10]: [0, 1, 2, 3] In [11]: a = [x for x in range(1,15
python生成器和各種推導式
一. 生成器 本質就是迭代器. 一個一個的建立物件 建立生成器的方式: 1. 生成器函式 2. 通過生成器表示式來獲取生成器 3. 型別轉換(看不到) 二. 生成器函式 (重點) 生成器函式中包含 yield , 返回資料和return差不多. return會立即結束這個函式的執行 yiel
python 生成器和各種推導式
##################################總結############################### 什麼是迭代器? 可迭代物件通過__iter__()可以轉換成迭代器,滿足迭代器協議。 內部含有__iter__且__next__方法的就是迭代器。 # l =
Python中的列表推導式
1、給程式傳引數 import sys print(sys.argv) 2、列表推導式 1、所謂的列表推導式,就是指的輕量級迴圈建立列表: a = [i for i in range(1,10)] b= [11 for i in range(1,10)] [(1,
Python|為什麼列表推導式會更快
1、列表推導式 你一定聽過這樣一個說法,儘量使用列表推導式,而不是用list.append方法來初始化一個列表,那麼究竟為何列表推導式會更快呢? 這是因為,列表推導式被編譯後的位元組碼執行速度更快。python當然不是一門編譯型語言,但是它還是要被解
python中的列表推導與生成器
1.先看兩個列表推導式 def t1(): func1 = [lambda x: x*i for i in range(10)] result1 = [f1(2) for f1 in func1] print result1 def
python中 使用列表推導自定義向量的加減乘
# coding=utf-8 class Vector(object): """docstring for Vector""" """根據座標軸列表輸入 建立向量, 並建立該向量所處的空
Python生成器和列表生成式
生成器: 在Python中, 這種一邊迴圈一邊計算的機制, 稱為生成器:generator 列表生成式:L(list) = [x * x for x in range(10)] 生成器: g(generator) = (x * x for x in range(10)
python 字典和列表的讀取速度問題
最近在進行基因組資料處理的時候,需要讀取較大資料(2.7G)存入字典中,然後對被處理資料進行字典key值的匹配,在被處理檔案中每次讀取一行進行處理後查詢是否在字典的keys中,以下兩段程式碼的效率差別非常大: 第一段: if(pos in fre_dist.keys()):
每天一點——python map()和reduce()
轉自:http://www.pythoner.com/46.html 今天要介紹的是Python函數語言程式設計中的另外兩個內建函式map()和reduce(),而不是Google的MapReduce。 1.map() 格式:map( func, seq1[, se
python map() 和 numpy函式:fromfunction以函式式建立陣列
map()函式接收兩個引數,一個是函式,一個是序列,map將傳入的函式依次作用到序列的每個元素,並把結果作為新的list返回。 舉例說明,比如我們有一個函式f(x)=x%2,要把這個函式作用在一個
switch...case 和 if...else效率比較和優化
switch...case寫法:switch (表示式){ case 值1 : 語句1 break; case 值2 : 語句2 break; ... default : 語句n break; }if...else寫法:if(boolean){ }else if(