2016-08-12 7 views
0

これは非常に簡単なはずですが、私は単純な解決策を見つけることができません。率直に言って、これは1つのライナーでなければなりません。リストをリスト形式に変換する簡単な方法

"['hello','world']" 

のように私はそれを分割したくないどのようにあなたは、このようなまったく同じフォーマットされた文字列へ

['hello','world'] 

として、リストに変換することができますPythonの3では、

、 2つの言葉に。

// This is bad. 
"hello world" 

伝統的なリスト形式を維持したいと考えています。私は当初、(str)list_nameのような文字列としてリストをバインドできると思っていましたが、明らかにそうではありません。これには単純な関数はありませんか?

EDIT:

私はそれは、単純な構文エラーだったことAChampionに感謝を発見しました。私はこのような文字列にリストをバインドしようとしていた:私はこの

//this is good 
str(list_name) 

のようにそれを書いている必要があります場合は

//this is bad 
(str)list_name 

それは私が探していたまさに私を与えます。助けてくれてありがとうと申し訳ありません、私はこのような初心者の質問をここで持っていなければなりません。まだPythonに慣れています。

答えて

1

リストstr()repr()の両方の形式が、単純な文字列のリストであると仮定しています。
あなたがより複雑な構造を持っていると、フォームオブジェクトに戻って文字列形式に(シリアル化)を転送したい場合は、jsonモジュールに見てみたいことがあります。

>>> import json 
>>> json.dumps(['hello','world']) 
'["hello", "world"]' 
1

はただ単に言う:

lst = ['hello', 'world'] 
new_str = str(lst) 
print(new_str) # prints out ["hello", "world"] 

あなたが明示的にそれを教えてくれない限り、Pythonは単なる文字列の書式に文字列を変換しません。そのような:

lst = ['hello', 'world'] 
str1 = str(''.join(lst)) 
print(str1)# prints 'helloworld' 

それとも、機能したい場合:関数は、より多くのラッパーのように実際にあるものの

def listToString(lst): 
    new_lst = str(lst) 
    return new_lst 

を。私はリストをpython bulitin str()を使ってまっすぐに変換して、それをラッパー関数に入れようとしています。

0

短い答えは:あなたが求めるものを正確に行うことはできません。

あなたがPythonで入力したリストを取得して、まったく同じ元の書式の文字列を取得することはできません。あなたのようなリストを構築することができるようにPythonは、リスト内の間隔でかなり寛大です:Pythonはリストとしてこれらのリストを作成すると

  1. ['hello', 'world']
  2. ['hello','world']
  3. [ 'hello', 'world' ]
  4. [ 'hello', 'world' ]

、あなたの書き方に関する情報は保持されません。だから、それを取り戻す方法はありません。

文字列化されたリストだけが必要な場合は、おそらくjson.dumpsを使用してください。

関連する問題