2017-08-16 2 views
0

ユーザーから複数の入力を受け取り、変数に格納しようとしています。格納した後、次のようにリスト内の各項目の前後に文字を追加して出力を得られない

私のコードは私が起動し、各単語の終了文字を追加したいが、私はPythonの3.Xで所望の出力を得るために失敗しています: -

string_value=[str(i) for i in raw_input("Enter space separated inputs: ").split()] 
aces = ["\'" + string_value + "\'" for string_value in string_value] 
print (aces) 

出力を: -

Enter space separated inputs: John Sunil Kathylene Bob 

["' John ' ", " ' Sunil ' ", " ' Kathylene ' ", " ' Bob' "] 

所望の出力: -

\'John\',\'Sunil\',\' Kathylene\',\' Bob\' 
+0

あなたは別の '\' と '\' をesaceする必要があります。これを試す 'string_valueのstring_valueには、[aces = [" \\ '"+ string_value +" \\' "] – Vinny

+0

BaxkslashはPythonの特殊文字です。 2つのバックスラッシュを連続して使用すると、リテラルのバックスラッシュを意味します。 '\\ '+' word ' - >' \ word ' – Ben

+1

最初の行のリストの理解は何も成し遂げられません。' .split() 'の結果はすでに文字列のリストです。 – jasonharper

答えて

0

いくつかのアドバイス:

  • 読むPEP8。
  • strからstrのタイプキャストは冗長です。

コード:

words = input("Enter space separated inputs: ").split() 
prefix_and_suffix = "\\'" 
formatted_words = ','.join('{0}{1}{0}'.format(
    prefix_and_suffix, word) for word in words) 
print (formatted_words) 
+1

プレースホルダに番号を付けると、繰り返しの繰り返しを避けることができます。この場合、たとえば '' {0} {1} {0} 'フォーマット( 接頭辞と接尾辞、単語) ' –

+1

も' raw_input'はPython 3では動作しません。代わりに 'input'を使用してください。 –

+1

彼はPython3にタグを付けましたが、彼の質問にも言及しています。彼はあなたが**質問したかった**ではなく**彼が**尋ねた質問に答えることができます**。 –

関連する問題