簡體   English   中英

Python 從生成器項中獲取最后一個元素

[英]Python get the last element from generator items

我非常驚訝使用生成器而不是列表。 但我找不到這個問題的任何解決方案。

從生成器項中獲取第一個和最后一個元素的有效方法是什么? 因為使用 list 我們可以只做 lst[0] 和 lst[-1]

謝謝您的幫助。 我無法提供任何代碼,因為這顯然正是我想知道的:)

你必須遍歷整個事情。 假設你有這個生成器:

def foo():
    yield 0
    yield 1
    yield 2
    yield 3

獲取第一個和最后一個值的最簡單方法是將生成器轉換為列表。 然后使用列表查找訪問這些值。

data = list(foo())
print(data[0], data[-1])

如果您想避免創建容器,您可以使用 for 循環來耗盡生成器。

gen = foo()
first = last = next(gen)
for last in gen: pass

print(first, last)

注意:當生成器沒有生成值時,您需要特殊情況。

暫無
暫無

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

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