簡體   English   中英

將 for 循環轉換為單行循環以比較性能

[英]Converting a for loop into one-liner to compare performance

我正在比較執行兩個代碼塊所需的時間:

import time

start = time.time()
a = []
for x in range(10000):
    if x % 2 == 0:
        a.append(x)

finish = time.time()
print('stopwatch: ', finish - start)

但是當我將 for 循環變成單行時,我收到語法錯誤:

start = time.time()
a = [x if x % 2 == 0 for x in range(10000)]
finish = time.time()
print('stopwatch: ', finish - start)

我將如何為上面的 for 循環編寫一行代碼?

您應該檢查列表推導式的正確語法。 正確的方法:

a = [x for x in range(10000) if x % 2 == 0]

iffor x in range()

a = [x for x in range(10000) if x % 2 == 0]

你的 if 語句放錯了地方。

start = time.time()
a = [x for x in range(10000) if x % 2 == 0 ]
finish = time.time()
print('stopwatch: ', finish - start)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM