2012-01-31 60 views

回答

3

也許只是解引用的指數:

print a[0] 

或者:

for item in a: 
    print item 
4

您正在對數組執行str()。 str轉換[3]爲「[3]」。您可能正在尋找

"".join(str(i) for i in a) 
8

,因爲你調用字符串功能的完整列表

試穿:

a = [3] 
print "".join([str(v) for v in a]) 

閱讀問題的標題後,你只是想獲得一個列表中的單個整數,還是要將整數列表轉換爲「更大」整數,例如:

a = [3, 2] 
print "".join([str(v) for v in a]) ## This gives a string and not integer 
>>> "32" 
+0

謝謝!這有效,但它的代碼很多...是不是有點unpythonic? – Jurudocs 2012-01-31 22:38:29

+1

如果你的列表只包含一個整數,並且你想要這個整數,是的,只是訪問索引a [0]將給出整數值3,但是如果你的列表包含多個整數,你想要concatinate,你必須指定如何做 – aweis 2012-01-31 22:40:34

+1

您可以通過刪除方括號來簡化,但使用帶有列表理解的字符串連接語法將被認爲是非常pythonic:D – Hamish 2012-01-31 22:42:13

2

由於str(a)爲您提供了列表的字符串表示形式,即「[3]」。

嘗試

"".join([str(elem) for elem in a]) 

加盟之前整數列表轉換爲字符串列表。

1

這將產生預期的行爲:

"".join([str(x) for x in a]) 
0

傳遞一個發電機表達加入而不是一個列表理解:

"".join(str(x) for x in a) 

如果您的列表僅包含數字,你可以使用再版(),而不是因爲多數民衆贊成STR()打算無論如何要做到:

"".join(repr(x) for x in a) 

如果您使用python 2.X你可以使用反引號作爲repr()的快捷方式。但是這在3.X中不可用:

"".join(`x` for x in a)