私は3つの引数を必要とする関数を定義しました。そのうちの1つはリストでなければなりません。 私が見つけた1つの解決策は、リストが整数で構成されている場合にのみ機能します。必ずしもそうである必要はありません(同じリスト内でタイプが異なる可能性があります)。 ユーザーからリストタイプの入力を要求するにはどうすればよいですか?例:[1,2,3]のようなものが入力された場合、リストとみなされますか?Pythonでユーザにリスト入力を要求する方法は?
答えて
は、ここに1つの方法です:
$ cat foo.py
import sys
input1 = sys.argv[1]
input2 = sys.argv[2]
print('Before\n-------')
print('input1:{},type_of_input1:{}'.format(input1, type(input1)))
print('input2:{},type_of_input2:{}'.format(input2, type(input2)))
print('After\n-------')
input1 = input1.split(' ')
print('input1:{},type_of_input1:{}'.format(input1, type(input1)))
print('input2:{},type_of_input2:{}'.format(input2, type(input2)))
$
実行出力
$ python foo.py 'foo bar' bat
Before
-------
input1:foo bar,type_of_input1:<type 'str'>
input2:bat,type_of_input2:<type 'str'>
After
-------
input1:['foo', 'bar'],type_of_input1:<type 'list'>
input2:bat,type_of_input2:<type 'str'>
$
あなたは完全にユーザーの入力を信頼する場合は、あなただけeval()
を使用することができます。ユーザーと仮定すると、文字列を入力し[1, 2, 3]
:
x = input() # Python 3, use raw_input for Python 2
y = eval(x) # Dangerous, don't use with untrusted input
print(y)
# [1, 2, 3]
print(len(y))
# 3
更新:
ast.literal_eval
はこちらの方が適しています。
import ast
x = input() # Python 3, use raw_input for Python 2
y = ast.literal_eval(x)
print(y)
# [1, 2, 3]
print(len(y))
# 3
' eval'は危険なアイデアです...誰かが '__import __ rmtree' – donkopotamus
それで、私はそれが私の答えでは危険だと言いました。スクリプトが作成者によってインタラクティブに実行されることが意図されているのであれば、それはシェルプロンプトよりも危険ではありません。 – Scovetta
しかし、なぜこのような場合に 'ast.literal_eval'の代わりに' eval'を提案するのですか? – donkopotamus
簡単かつ安全に保管し、input
を使用して、リストを自分の中に入力を変換しますhttps://docs.python.org/3/library/functions.html#input
import re
re.sub("[^\w]", " ", input('-->')).split()
-->This is a string of words converted into a list
output:
['This', 'is', 'a', 'string', 'of', 'words', 'converted', 'into', 'a', 'list']
input
は、ビルトインされ
import ast
while True:
s=raw_input("Enter a list: ")
s=ast.literal_eval(s)
if not isinstance(s, list):
print "Nope! {} is a {}".format(s, type(s))
else:
break
print s
optioが必要な場合ユーザisinstance
にtuple
を追加する(例えば、1,2,3
を入力することによって)タプルを入力するN:
import ast
while True:
s=raw_input("Enter a list: ")
s=ast.literal_eval(s)
if not isinstance(s, (list, tuple)):
print "Nope! {} is a {}".format(s, type(s))
else:
break
- 1. ユーザが入力した句をPythonで入力する方法
- 2. Python 3.x:ユーザ入力リストから偶数を抽出する方法は?
- 3. (PYTHON)ユーザの要求
- 4. Octaveでユーザからの入力を要求する
- 5. Pythonユーザ入力方程式
- 6. PHPアクションメソッド:ユーザ入力をユーザ入力+必須拡張にリダイレクトする方法は?
- 7. tkinterのユーザ入力でpythonコードを実行する方法
- 8. PythonソケットアプリケーションでGET要求を受け入れる方法は?
- 9. Pythonループをユーザ入力で止める方法
- 10. Pythonは - ユーザ入力が
- 11. ユーザ名、パスワード、db名をバッチファイルのユーザ入力で入力する方法
- 12. ファイル位置を入力してEclipseのプログラムで読むためにユーザに要求する方法(Java)
- 13. ユーザPHPの入力をMySQLに入力する方法
- 14. ABAQUS Pythonでエネルギーフィールドの出力を要求する方法
- 15. Pythonでは、以前のユーザー入力に基づいてユーザー入力を求める方法は何ですか?
- 16. ユーザ名を入力する方法
- 17. 郵送前にPHPでユーザ入力をサニタイズする方法は?
- 18. ユーザ入力配列の要素の平均(平均)を求めるには?
- 19. スレッディング中にPythonでユーザ入力を無視するには?
- 20. バックボタンで要求を入力するクリック
- 21. pythonでリストの入力制限を設定する方法3
- 22. pythonのリストに入力を保存する方法3
- 23. Pythonのリストにユーザー入力を格納する方法
- 24. テレグラムのボット、ユーザーからの入力を要求する方法?
- 25. laravel $要求 - >入力は()
- 26. Python 3 unittestユーザ入力をシミュレートする
- 27. 要求入力配列を決定する方法は空ですか?
- 28. python3でブロックせずにユーザ入力を促す方法は?
- 29. Pythonのリスト要素に対する入力を確認する
- 30. パーセントを要するユーザ入力テーブル?
読む[ast.literal_eval(https://docs.python.org/2/library/ast.html約#ast.literal_eval) – dawg
質問との関係は何ですか? –
は質問です。ユーザーからのリストタイプ入力をリクエストする方法は? – gregory