2011-06-21 23 views

答えて

9
l = (int(x) for x in s.split()) 

次の2つの整数が常に存在していることを確認している場合にも行うことができます:

a,b = (int(x) for x in s.split()) 

またはあなたがもちろん

l = [int(x) for x in s.split()] 
4

後の配列を変更することを計画している場合splitを呼び出すことはできますが、整数ではなく文字列を返します。これは動作するはず

>>> x, y = "42 0".split() 
>>> [int(x), int(y)] 
[42, 0] 

または

[int(x) for x in "42 0".split()] 
7

を行います。

[ int(x) for x in "40 1".split(" ") ] 
2

他の回答には、すでにあなたがlistに値を取得するためにsplit()を使用できることを示しています。

import array 
s = '42 0' 
a = array.array('i', (int(t) for t in s.split())) 
65

6の答えはOPが簡単に身に答えている可能性が質問にはほぼ十分ではありません。

import array 
s = '42 0' 
a = array.array('i') 
for n in s.split(): 
    a.append(int(n)) 

編集:より簡潔なソリューションあなたは、Pythonのarraysについて尋ねられた場合は、ここでは一つの解決策でありますinterpreter

>>> "42 0".split() # or .split(" ") 
['42', '0'] 

A:はい。

しかし、あなたがそれに引数を指定しない場合には、特に空白のデフォルトの分割によってsplit方法(スペース、タブ、carriage returnnewline)ことが指摘されていません。

>>> " \r 42\n\r \t\n \r0\n\r\n".split() 
['42', '0'] 

あなたがintfloatstrなどの組み込みコマンドに反復可能オブジェクトの項目を変換したい場合にも、mapを使用すると、通常はリストの内包表記を使用するよりもきれいに見え、等:

>>> map(int, "42 0".split()) 
[42, 0] 
+4

+1とマップを分割して渡していない –

+0

この回答の前半は気が利いていますが、実際の質問には対応していません。 askerはint *にキャストしているときにsplit *を使用できるかどうかを知りたいと思っています。マップについての後半は、クールで便利です。 – Starman

関連する問題