raw_input()
を使用して数値のリストを取得しようとしましたが、コードは
numbers = raw_input()
print len(numbers)
入力[1,2,3]
は7
の結果を与えるため、入力を文字列であるかのように解釈すると思います。リストを作成する直接的な方法はありますか? re.findall
を使用して整数を抽出できたかもしれませんが、可能であれば、よりPythonicなソリューションを使用することを好みます。
Python 3.xでは、これを使用します。
a = [int(x) for x in input().split()]
>>> a = [int(x) for x in input().split()]
3 4 5
>>> a
[3, 4, 5]
>>>
Python構文を解析するよりも、スペースで区切られた数値のリストを解析する方がはるかに簡単です。
Python 3:
s = input()
numbers = list(map(int, s.split()))
Python 2:
s = raw_input()
numbers = map(int, s.split())
eval(a_string)
は、文字列をPythonコードとして評価します。これは明らかに安全ではありません。 ast
モジュールのliteral_eval
関数を使用すると、より安全な(より制限された)評価を取得できます。
raw_input()
はPython 2.xでは「解釈された」入力ではなく生であるため呼び出されます。 input()
は入力を解釈します。つまり、eval(raw_input())
と同等です。
Python 3.xでは、input()
がraw_input()
の機能を実行します。必要に応じて内容を手動で評価する必要があります(つまり、eval(input())
)。
.split()
を使用できます
numbers = raw_input().split(",")
print len(numbers)
これでも文字列は得られますが、文字列のリストになります。
それらを型にマッピングする必要がある場合は、リスト内包表記を使用します。
numbers = [int(n, 10) for n in raw_input().split(",")]
print len(numbers)
anyPythonタイプを入力して、自動的にマッピングできるようにする場合 andユーザーを信頼する暗黙的にを使用できます eval
別の方法は、これにforループを使用することです。 「memo」という名前のリストに10個の数字を入力してほしいとしましょう
memo=[]
for i in range (10):
x=int(input("enter no. \n"))
memo.insert(i,x)
i+=1
print(memo)
num = int(input('Size of elements : '))
arr = list()
for i in range(num) :
ele = int(input())
arr.append(ele)
print(arr)
a=[]
b=int(input())
for i in range(b):
c=int(input())
a.append(c)
上記のコードスニペットは、ユーザーから値を取得する簡単な方法です。
リストの文字列表現をjsonに渡すことができます。
import json
str_list = raw_input("Enter in a list: ")
my_list = json.loads(str_list)
ユーザーはpythonの場合と同様にリストに入力します:[2, 34, 5.6, 90]
答えは簡単です。これを試して。
x=input()
[1,3,5,'aA','8as']
が入力として与えられていると仮定します
print len(x)
これは5の答えを与えます
print x[3]
これは'aA'
を与えます
これで仕事ができると思う:
val = map(int, input().split()) print(list(val))
Python 3で:
input_list = [int(x.strip()) for x in input("enter list:").strip()[1:-1].split(",")]
「リストの入力」を要求するので、[2,4,5]のようなリストを入力してください。
(common_py3) PS E:\virtual_env_all\common_py3\Scripts> python
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> input_list = [int(x.strip()) for x in input("enter list:").strip()[1:-1].split(",")]
enter list:[2,4,5]
>>> input_list
[2, 4, 5]
>>> type(input_list)
<class 'list'>
>>>
これを試して、
n=int(raw_input("Enter length of the list"))
l1=[]
for i in range(n):
a=raw_input()
if(a.isdigit()):
l1.insert(i,float(a)) #statement1
else:
l1.insert(i,a) #statement2
リストの要素が単なる数字の場合、ステートメント1が実行され、それが文字列の場合、ステートメント2が実行されます。最終的に、必要に応じてリストl1が作成されます。
この関数を使用できます(int型のみ);)
def raw_inputList(yourComment):
listSTR=raw_input(yourComment)
listSTR =listSTR[1:len(listSTR)-1]
listT = listSTR.split(",")
listEnd=[]
for caseListT in listT:
listEnd.append(int(caseListT))
return listEnd
この関数は(int型の)リストを返します!
例:
yourList=raw_inputList("Enter Your List please :")
入ったら
"[1,2,3]"
それから
yourList=[1,2,3]