2016-04-28 10 views
-1

実際にリストであるとき、なぜpythonが以下の例を文字列として扱うのかを理解したいと思います。 join(expression)はexpressionをstringとして扱いますか?文字列とリストの違いと結合の利用

例1

available_letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 
        'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 
        's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] 

print 'Available letters: ' + ''.join(available_letters) 

私は' '.join(available_letters)の種類を確認すると、それは文字列を入力しています。 しかし、私は

print 'Available letters: ' + available_letters 

を使用している場合、私はエラーが文字列とリストを連結することはできません取得します。

答えて

1

これが理由です:あなたは上記を参照として、availabe_letterslist型自体の変数

>>> available_letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 
         'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 
         's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] 

>>> x = ' '.join(available_letters) 
>>> available_letters 
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] 
>>> x 
'a b c d e f g h i j k l m n o p q r s t u v w x y z' 

>>> type(available_letters) 
<type 'list'> 

>>> type(x) 
<type 'str'> 

です。しかし、' '.joinメソッドを呼び出すと、その出力は文字列になります。 liststrの連結は正しくありませんが、strの連結は問題ありません。

0

のpython3:

available_letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 
        'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 
        's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] 

print ('Available letters: ', ''.join(available_letters)) 
+0

はコードのみを投稿してはいけません。あなたの解決策も説明してください。 – zgue

関連する問題