簡體   English   中英

Python元組vs生成器

[英]Python tuple vs generator

我有一個問題,理解為什么以下行之一返回生成器和另一個元組。

如何在第二行中創建生成器的確切原因和原因,而在第三行中生成一個元組?

sample_list = [1, 2, 3, 4]
generator = (i for i in sample_list)
tuple_ = (1, 2, 3, 4)

print type(generator)
<type 'generator'>

print type(tuple_)
<type 'tuple'>    

是因為元組是不可變對象,當我嘗試解壓縮inside () ,它無法創建元組,因為它必須更改元組元組。

您可以將元組編輯為在對值進行硬編碼時創建,同時創建生成器以提供創建對象的方法。

這是有效的,因為(1,2,3,4)無法成為發電機。 在那里沒有任何東西可以生成,你只是指定了所有元素,而不是獲取它們的規則。

為了使你的generator成為一個元組,表達式(i for i in sample_list)必須是一個元組理解。 沒有辦法讓元組理解,因為理解需要一個可變數據類型。

因此,應該是元組理解的語法已被重用於生成器。

括號用於三個不同的事物:分組,元組文字和函數調用。 比較(1 + 2) (整數)和(1, 2) (元組)。 generator賦值中,括號用於分組; tuple賦值中,括號是一個元組文字。 當括號包含逗號並且不用於函數調用時,它們表示元組文字。

暫無
暫無

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

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