次のいずれかの行がジェネレータと別のタプルを返す理由を理解するのに問題があります。Pythonタプル対ジェネレータ
タプルを最初の行に作成する方法と正確な理由は、2番目のタプルはタプルを作成します。
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'>
タプルは不変オブジェクトであると私は()
内のリストを展開しようとすると、それはタプルタプルを変更する必要がありますように、それはタプルを作成することはできませんので、それです。
カッコは、グループ化、タプルリテラル、および関数呼び出しの3つの異なるものに対して使用されます。 '(1 + 2)'(整数)と '(1,2)(タプル))を比較してください。 'generator'の代入では、カッコはグループ化のためのものです。 'tuple'の代入では、かっこはタプルリテラルです。カッコは、カンマを含み、関数呼び出しに使用されていないタプルリテラルを表します。 – Ryan
@ Ryan:それは答えです(おそらく言語文法文書をリンクしています)。 – ShadowRanger