本文實例講述了python集合常見運算。分享給大家供大家參考,具體如下:
python生成不重復隨機數(shù)放在列表中的效率比較
import randomimport timedef RandomNumbers(number, start, end): '''使用列表來生成number個介于start和end之間的不重復隨機數(shù)''' data = [] n = 0 while True: element = random.randint(start, end) if element not in data: data.append(element) n += 1 if n == number - 1: break return datadef RandomNumbers1(number, start, end): '''使用列表來生成number個介于start和end之間的不重復隨機數(shù)''' data = [] while True: element = random.randint(start, end) if element not in data: data.append(element) if len(data) == number: break return datadef RandomNumbers2(number, start, end): '''使用集合來生成number個介于start和end之間的不重復隨機數(shù)''' data = set() while True: data.add(random.randint(start, end)) if len(data) == number: break return datastart = time.time()for i in range(1000): RandomNumbers(1000, 1, 10000)print('Time used:', time.time()-start)start = time.time()for i in range(1000): RandomNumbers1(1000, 1, 10000)print('Time used1:', time.time()-start)start = time.time()for i in range(1000): RandomNumbers2(1000, 1, 10000)print('Time used2:', time.time()-start)得到的結(jié)果是
==================== RESTART: C:/Users/xuzm/Desktop/比較.py ====================
Time used: 24.607422828674316
Time used1: 24.069069623947144
Time used2: 4.816216945648193
>>>
可見:
append方法對空裂變追加元素的方法效率遠不及add方法
PS:這里再提供幾款相關(guān)工具供大家參考使用:
在線隨機數(shù)生成工具:
http://tools.jb51.net/aideddesign/rnd_num
在線隨機生成個人信息數(shù)據(jù)工具:
http://tools.jb51.net/aideddesign/rnd_userinfo
在線隨機字符/隨機密碼生成工具:
http://tools.jb51.net/aideddesign/rnd_password
在線隨機數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學運算技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
新聞熱點
疑難解答