簡體   English   中英

Python列表理解

[英]Python list comprehension understanding

我在幫助下編寫了一些代碼,並且試圖了解特定行的含義:

rec = [f[0:-2] for f in List if f[-1] == i][0]

我知道這是一個列表推導,它采用列表中的值,當等於另一個變量i時減去最后2個值。

在這種情況下, [0]做什么?

從結果列表對象中獲取第一個過濾的元素是一種低效的方法。

[f[0:-2] for f in List if f[-1] == i]

是列表推導,產生一個新的列表對象。 然后用[0]為該對象建立索引以獲取第一個值。

您可以將其重寫為:

tmp = [f[0:-2] for f in List if f[-1] == i]
rec = tmp[0]
del tmp

並獲得相同的結果。

有效的方法是將next()生成器表達式一起使用

rec = next(f[:-2] for f in List if f[-1] == i)

這只會遍歷List直到找到與測試匹配的第一個f ,而不是首先產生所有此類匹配,然后再次丟棄list對象。

暫無
暫無

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

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