web-dev-qa-db-ja.com

pythonに文字列を追加する

文字列が実際に文字定数のリストであるにもかかわらず、このステートメントがエラーを生成するのはなぜですか?

string_name=""  
string_name.append("hello Word")  

私がこれを真であると考える理由は、forループを使用するときに、このステートメントを使用できるためです。

string_nameのiの場合:
......

String_nameはここでリストと見なされると思います

8
Piyush Kumar

Pythonで実際のプログラミング言語ではなくアルゴリズム言語(非現実)を扱うアルゴリズムとデータ構造のクラスで彼らがあなたに教えることは、文字列は文字列であり、リストはリストです、それらは異なるオブジェクトですストリング連結と呼ばれるものを使用して、ストリングに「追加」します(これは基本的にストリングの加算操作です)。

string_name = "hello"  
string_name = string_name + " world"
print(string_name) # => "hello world"

または、簡略表記の連結:

string_name = "hello"
string_name += " world"
print(string_name) # => "hello world"

リストと文字列は、iterableと呼ばれるこのタイプに属します。 iterablesは名前が示すとおり、反復可能です。つまり、単語inを使用して繰り返し処理できますが、同じタイプのオブジェクトであることを意味しません。

for i in '123': # valid, using string
for i in [1, 2, 3]: # valid, using list
for i in (1, 2, 3): # valid, using Tuple
for i in 1, 2, 3: # valid, using an implicit-Tuple
# all valid, all different types

Pythonドキュメント を読むこと、および/または Pythonのチュートリアル を取ることを強くお勧めします。

ドキュメント用語集から:

反復可能
メンバーを一度に1つずつ返すことができるオブジェクト。イテラブルの例には、すべてのシーケンス型(リスト、str、タプルなど)と、dict、ファイルオブジェクト、および__iter __()または__getitem __()メソッドで定義するクラスのオブジェクトなどの非シーケンス型が含まれます。 Iterableはforループや、シーケンスが必要な他の多くの場所(Zip()、map()、...)で使用できます。反復可能オブジェクトが引数として組み込み関数iter()に渡されると、オブジェクトの反復子を返します。この反復子は、値のセットを1回渡すのに適しています。イテラブルを使用する場合、通常、iter()を呼び出したり、イテレータオブジェクトを自分で処理する必要はありません。 forステートメントは自動的にそれを行い、ループの期間中イテレータを保持するために一時的な名前のない変数を作成します。イテレータ、シーケンス、ジェネレータも参照してください。 iterables の詳細。

5
MrGeek