2014-09-23 47 views
-4

如何使用STR方法以顯示與逗號分隔和方括號 例如列表:怎麼用__str__方法蟒

測試:

my_list = UnorderedList()

爲i的範圍(5):

my_list.add(i) 

打印(my_list)

結果:

[4,3,2,1,0]

+0

你的意思是你想打印一個字符串'「[1,2,3]」嗎?或者你想'['1','2','3']'? – Dannnno 2014-09-23 04:54:28

+0

@Dannnno我想打印一個字符串[1,2,3] – 12345678 2014-09-23 04:59:46

+0

你可以用輸入和輸出來更改你的問題嗎? – 2014-09-23 05:05:38

回答

0

可以簡單地使用str()函數並傳遞列表作爲要顯示的參數。例如,

tmp_list = [1,2,3,4] 

print str(tmp_list) 
1

print函數(或聲明,在Python 2.x的)已經呼籲str其參數,所以你不必做任何事情

>>> print([1, 2, 3]) 
[1, 2, 3] 
>>> print([]) 
[] 
>>> a = [1, 2, 3] 
>>> print(a) 
[1, 2, 3] 

由於該文檔說:

所有非關鍵字參數都轉換爲字符串,如str()確實並寫入流...


如果你想要得到的字符串除打印一些其他目的(例如,寫入到一個文件中),你可以隨時調用它str。這就像任何其他的功能(當然,類型構造,但不要擔心):

>>> s = str(a) 
>>> s 
'[1, 2, 3]' 

由於文檔解釋:

str(object)回報object.__str__(),這是「非正規「或很好地打印對象的字符串表示形式。對於字符串對象,這是字符串本身。如果對象沒有__str__()方法,則str()會回退到repr(object)

+0

我正在使用python 3 – 12345678 2014-09-23 05:11:02

+0

@ 12345678:好,很好;我爲Python 3寫了答案(Python 2只有一個小括號),所有鏈接都轉到Python 3文檔。 (但是你應該在你的問題中編輯'python-3.x'標籤,因爲如果你不這麼說的話,很多人仍然認爲Python 2.7。) – abarnert 2014-09-23 05:12:09