2016-07-01 7 views
-3

入力から文字列のリストを作成する必要があります。私は他の答えを試してみましたが、数字だけでなく、空白がない場合にのみ動作します。例:入力のpythonからリストを取得

Enter input: ["Test 1", "Test 2", "Test 3"] 
["Test 1", "Test 2", "Test 3"] 

またはそれに類するもの。 (Enter input: "Test 1", "Test 2", etc..も可能です)

+1

あなたが試したことを示す必要があります。あなたが聞いたこととは違って、SOはコード作成サービスではありません。 –

+0

ようこそ。申し訳ありませんが、これは良い質問ではありません。既に試したことの例を使って編集しない限り、すぐに閉鎖される可能性があります。 –

+0

[Python docs](https://docs.python.org/2/library/string.html)をチェックしましたか? – Kroltan

答えて

0

この場合は、ast.literal_evalが必要です。正当なPythonリテラルに入る限り、それはうまくいくでしょう。 json.loadsも動作しますが、完全なPythonのリテラル構文よりも表現力は劣ります。いずれにしても、実際にlistとなっていることを確認する必要があります。

import ast 

bad = True 
while bad: 
    userinput = input("Enter text:") 
    try: 
     userlist = ast.literal_eval(userinput) 
    except Exception: 
     pass 
    else: 
     bad = not isinstance(userlist, list) 
    if bad: 
     print("Not a valid Python list") 
# Once you get here, you have a legal list stored in userlist 
+0

本当にありがとう、他の人たちは「これをやってはいけない」と言っていましたが、それを完全に無視していました。 – ZetDude

0

この方法では、もう少し便利かもしれません:

N_items = int(input('How many items? ')) 
my_list = [input('Enter a list item: ') for _ in range(N_items)] 

ところで:答えを得ることは、それは良い質問であることを意味しません。あなたがダウン投票している理由があります。

関連する問題