2012-09-10 62 views
0

我想使用raw_input函數獲取多個值。python raw_input如何同時獲取多個值

inp = raw_input("--->") 

--> 10, Trees, 40, Desks 

inp現在等於'10,Trees,40,Desks'

相反,我想inp是像

'10','Trees','40', 'Desks' 

任何想法如何做到這一點?

謝謝!

回答

4

採用分......

print inp.split(",") 

,甚至更好,也許

>>> inp = raw_input("->") 
->10 trees,40 desks 
>>> p1 = inp.split(",") 
>>> p2 = dict([s.split() for s in p1]) 
>>> p2 
{'10': 'trees', '40': 'desks'} 
>>> p2 = dict([reversed(s.split()) for s in p1]) 
>>> p2 
{'trees': '10', 'desks': '40'} 

,使值的int,你可以做

>>> for key in p2: 
...  p2[key] = int(p2[key]) 
... 
>>> p2 
{'trees': 10, 'desks': 40} 
+1

+1提示'字典()',你也可以嘗試:'xict(1,len(p1),2))'中的dict((p1 [x],p1 [x-在這種情況下需要'reveresed()'。 ' –

+0

是啊......我不知道這似乎是更pythonic的方式(恕我直言)......但好建議(也許更快) –

+0

是的,它應該更快,因爲在這裏沒有'split()'的要求。 –

0
inp = raw_input("--->").split(',') 
+0

有什麼辦法可以檢查輸入的項目是否是一個整數,這樣它就不會將它保存爲列表中的字符串?這樣inp = [10,'樹',40,'書桌'] – user1530318