今日は、私のコピー & ペーストの間違いと、Python プログラムで末尾にカンマがある文字列がどのように結合されて Tuple() になったかについてお話します。不思議なことに、私はこの間違いを犯すまで、この概念を知りませんでした。
それでは、Python の文字列とタプルについて簡単に学習することから始めましょう。
定義: テキストの保存と操作に使用される文字のシーケンス。
構文: 一重引用符 ' '、二重引用符 " "、または三重引用符 ''' ''/"" """ で囲みます。
不変性: 文字列は作成後に変更できません。
# Example mystring = "Hello, World!" print(type(mystring)) #Output:mystring2 =str() print(type(mystring2)) #Output:
定義: 不変の値のシーケンス。
構文: カンマで区切って括弧 ( ) で定義します。
不変性: 一度作成された要素は変更できません。
# Example mytuple = (1,2) print(type(mytuple)) #Output:mytuple2 =tuple() print(type(mytuple2)) #Output:
これで、文字列とタプルについて、また、直接代入またはコンストラクターを使用したクラス アプローチを使用して、文字列型またはタプル型の変数を取得する方法を理解しました。しかし、私の話は違います:)。
Python ステートメントにはセミコロン (;) やコンマ (,)、その他の終了記号 (ブロックの処理にスペースが使用されます) は必要ありません。では、「Ajit Kumar」のような文字列で末尾のコンマを終了するにはどうすればよいですか。辞書のリストから文字列要素をコピーすると、末尾にカンマが付くことがよくあるためです。これが私に起こったことで、その後話が面白くなりました。
それでは、まず私のストーリーの例を見てみましょう。
mymistake = "Ajit Kumar", print(type(mymistake)) #Output :
ここで、注意すべき点が 2 つあります:
1) Python インタープリターは、文字列 'mymistake' の末尾のコンマが原因でエラーをスローしません。そうでない場合、エラーはそれ以上進みません。
2) 文字列変数 mymistake を作成する当初の意図よりも、変数の型が「タプル」になってしまいました。
ここに書きましたが、非常に簡単でシンプルに見えますが、このエラーをデバッグするのに1時間かかりました。文字列を引数としてメソッドに渡していたため、エラーが奇妙で、メソッドに取り組み続け、理解しようとしました。エラーメッセージ。たとえば、メッセージは次のようなものでした。「name」変数にはメソッド lower() がありません。
括弧なしでカンマを使用すると、Python はそれをタプルとして扱います。
例: mymistake = "Ajit Kumar"、タプル ("Ajit Kumar",) を作成します。
したがって、項目/要素のみを含むタプルを作成したい場合は、十分に注意する必要があります。次の例では、最初の例では、項目が括弧 (1) のペア内にある場合でも、Python はそれをタプルではなく整数として扱うことを示しています。
singleitem = (1) print(type(singleitem)) #Output:
したがって、単一の item を含むタプルを作成するには、次のように末尾にカンマを使用する必要があります:
singleitemtuple = (1,) print(singleitemtuple) #output: (1,) print(type(singleitemtuple)) #output:
そして、これが、文字列の末尾にコンマがある場合、Python がそれをタプルとして受け取り、変数を文字列としてではなくタプルとして作成した理由だと思います。
しかし、Python のドキュメントには明確に記載されており、それに気付かず、トレーニング カンマ付きの単一項目であってもタプルを作成するために常に () を使用していた私の間違いまたは過失でした。ソース
とにかく、これにより、いくつかの新しい学習と、() を使用せずに単一の項目または複数の項目を含むタプルを作成するショートカットが得られました。はい、さらに多くの項目で「末尾のカンマ」を使用してタプルを作成してみましたが、うまくいきました。例:
mylearning = "Ajit Kumar","April","python", print(mylearning) #output: ('Ajit Kumar', 'April', 'python') print(type(mymistake)) #output:
週末はとても勉強になりました。お役に立てば幸いです。議論や提案をコメントに記入してください。 Python のショートカットやすぐに使える機能について聞くのが大好きです。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3