第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

生成一個數(shù)字列表 - 一般來說,哪一個更好?

生成一個數(shù)字列表 - 一般來說,哪一個更好?

滄海一幻覺 2022-08-25 15:56:04
n=[n for n in range(10)]print(n)r=list(range(10))print(r)a=range(0,10)print(list(a))這些特定的符號有什么優(yōu)點嗎?
查看完整描述

2 回答

?
慕雪6442864

TA貢獻1812條經(jīng)驗 獲得超5個贊

Python有一個用于快速基準測試的模塊:timeit


Python 3.6.9 (default, Nov  7 2019, 10:44:02) 

[GCC 8.3.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>> import timeit

>>> timeit.timeit("[n for n in range(10)]")

0.4846451000000229

>>> timeit.timeit("list(range(10))")

0.3175106840000126

>>> 

顯然,使用速度更快。它也不那么冗長,意圖更清晰恕我直言(列表推導(dǎo)式通常用于轉(zhuǎn)換/過濾可迭代對象)。list()


查看完整回答
反對 回復(fù) 2022-08-25
?
忽然笑

TA貢獻1806條經(jīng)驗 獲得超5個贊

Bruno已經(jīng)解釋了為什么列表理解可能不理想,但我想強調(diào)列表和范圍之間的一些區(qū)別。


請務(wù)必注意,a 和 a 具有一些不同的功能和方法。因此,“哪一個更好”的答案取決于您的應(yīng)用。listrange


系列優(yōu)勢

范圍是可迭代的,不必將所有數(shù)字都保留在內(nèi)存中。例如,Python 與 沒有問題,但會拋出錯誤。range(int(1e20))list(range(int(1e20)))


還可以更有效地查詢范圍。比較以下代碼片段:


>>> from timeit import timeit

>>> timeit("100 in numbers",setup='numbers=range(10000)')

0.1061642

>>> timeit("100 in numbers",setup='numbers=list(range(10000))')

1.2257957

對于這種情況,一個范圍的查詢速度提高了 10 倍,對于較大的列表,這種差異只會增加。


列表的優(yōu)點

最大的區(qū)別是列表可以包含任何類型的對象。因此,如果您希望您的數(shù)字是浮動的,那么這是更簡單的解決方案。


此外,它還允許您追加或刪除單個條目。因此,如果您需要對數(shù)字進行一些自定義排序,那么列表可能會更容易。


查看完整回答
反對 回復(fù) 2022-08-25
  • 2 回答
  • 0 關(guān)注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號