2016-02-06 20 views
6

タプルは値タプルが括弧で囲まれているのはなぜですか?</p> <pre><code>tup = 'a', 'b', 'c', 'd' </code></pre> <p>しかし、私は頻繁に参照すると、このような宣言です:

のカンマ区切りリストですので、タプルを宣言するための有効な構文は次のとおりです

tup = ('a', 'b', 'c', 'd') 

タプルをかっこで囲むことのメリットは何ですか? Python docsから

+5

読みやすさ、。 –

+2

誰か有名なかつて言いました」 *時にはかっこはちょうど括弧です。* "カンマはタプルを作成しますが、カッコは常に彼らが行うことを行います。 – uhoh

答えて

4

括弧だけでカッコしている - 彼らは優先度を変更することで動作します。唯一の例外は、何も囲まれていない場合(すなわち())、空のタプルを生成する場合です。

それでも、かっこを使用する理由は、かなり一貫した表記になります。空のタプルとそのような他のタプルを書くことができます。

もう1つの理由は、通常、リテラルが他の操作より高い優先順位を持つことを望んでいるということです。たとえば、2つのタプルを追加すると、(1,2)+(3,4)と書き込まれます(ここで括弧を省略した場合は、1,2+3,4となります。これは2と3を最初に追加してからタプルを作成することを意味します)。結果は1,5,4です。同様の状況は、関数にタプルを渡したい場合です。f(1,2)は引数1と2を送信することを意味し、f((1,2))はタプルを送信することを意味します。(1,2)。タプルをタプルの中に含める場合は、((1,2),(3,4)(1,2,3,4)は別のものです。

10

...ネストされたタプルが正しく解釈されるように。タプルは、大雑把には 式の一部である場合は、 のカッコが必要な場合がありますが、周囲のカッコを入れてもしなくても、 の入力でもかまいません。ネストされたタプルの

例:

tuple = ('a', ('b', 'c'), 'd') 
1

これは良い回答です!ここでアクションでタプルのほんの追加の例は、(開梱/梱包)です:

あなたがこれを行う場合は何が起こっているか

x, y = y, x 

は次のとおりです。

と同じである
tuple_1 = (y, x) 
(x, y) = tuple_1 

tuple_1 = (y, x) 
x = tuple_1[0] 
y = tuple_1[1] 

すべてこれらの場合かっこはPythonに何もしません。しかし、スクリプトを読む人に「ちょっと!私はタプルを作っています!あなたがコンマを見なかったら、私はあなたの目をつかむためにこれらの括弧を追加します!「ネストされたタプルについての答えが正しいです。あなたは、タプルやリストのようなものの内側にタプルを入れたい場合はもちろん

...初心者のための

A = x, (x, y) # same as (x, (x, y)) 
B = [x, (x, y)] 
+0

編集していただきありがとうございます。私はそれをロールバックしました。これは大丈夫ですが、pythonスクリプトちょうど "python"であり、多くの人は、 "script"という言葉がPythonに適用されたときの "code"よりも優れていると主張するでしょう。追加の回答として貢献度を追加する前に、他の回答に変更してください。多くの答えがある場合、これらの合図は、読者が質問に来るのを助けることができます。彼らは確かに私を助けてくれました。 – uhoh

関連する問題

 関連する問題