2014-11-06 25 views
-1

我試圖得到一個整數列表爲不包含空格的一行返回列表,我能做到下面的代碼如何在單行

import sys 

l = [1, 2, 3] 
for a in list: 
    b = sys.stdout.write(str(a)) 
return int(b) 

,但上面的代碼給了我一個了把1231,但我想輸出爲123

沒有任何人有任何想法如何做到這一點?

+0

殺不需要'return' – inspectorG4dget 2014-11-06 03:10:06

+0

最後一個返回 – Hackaholic 2014-11-06 03:10:24

+1

爲什麼不使用'print',而不是'sys.stdout.write函數()'?另外,請不要將變量命名爲'list','dict','str'等等 - 這些都是內置的Python函數,並且你正在屏蔽它們。 – MattDMo 2014-11-06 03:10:45

回答

3

如果你只是想返回所有連接在一起的列表項的字符串,你的代碼應該是:

l = [1, 2, 3] 
return ''.join([str(item) for item in l]) 

無需進口sys或寫入到標準輸出。

如果輸出需要是int,只需使用

return int(''.join([str(item) for item in l])) 

我知道這看起來有點怪異投整數爲字符串,返回整數,但這是你有,如果你想要做什麼連接一切。

+0

@AvinashRaj不適合我,使用3.4.2。你使用什麼版本? – MattDMo 2014-11-06 03:29:10

+1

這是因爲你必須定義一個返回值的函數。現在得到'語法錯誤:「迴歸」外function' – muthan 2014-11-06 03:31:00

+0

你並不需要額外的名單 - '「」。加入(STR(項目)的項目中[1,2,3])'工作正常,或另一種選擇是'列表(地圖(STR,[1,2,3])))' – 2014-11-06 04:05:05