2016-08-12 38 views
0

這應該很簡單,但我找不到一個簡單的解決方案。坦率地說,這應該是一個班輪。簡單的方法將列表轉換爲字符串,仍然格式化爲列表

在Python 3,你如何轉換的列表,如

['hello','world'] 

已格式化完全相同的一個字符串,如

"['hello','world']" 

我不想把它分解分成兩個字。

// This is bad. 
"hello world" 

我想保留傳統的列表格式。我最初以爲你可以將列表綁定爲像(str)list_name這樣的字符串,但顯然不是。這不是一個簡單的功能嗎?

編輯:

我發現由於AChampion,這是一個簡單的語法錯誤。我試圖列表綁定到一個像這樣的字符串:

//this is bad 
(str)list_name 

當我應該已經這樣

//this is good 
str(list_name) 

寫它這給了我正是我一直在尋找。感謝您的幫助和抱歉,我不得不在這裏帶來這樣的初學者問題。仍然習慣於Python。

回答

1

這兩個列表str()repr()形式是你要求的,假設它是一個簡單的字符串列表。
如果你有更復雜的結構,並且希望(連載)轉移到字符串形式返回對象的形式,你可能想看看進入json模塊:

>>> import json 
>>> json.dumps(['hello','world']) 
'["hello", "world"]' 
1

只是簡單地說:

lst = ['hello', 'world'] 
new_str = str(lst) 
print(new_str) # prints out ["hello", "world"] 

Python將不只是字符串轉換爲字符串格式,除非你明確告訴它。像這樣:

lst = ['hello', 'world'] 
str1 = str(''.join(lst)) 
print(str1)# prints 'helloworld' 

或者,如果你想有一個函數:

def listToString(lst): 
    new_lst = str(lst) 
    return new_lst 

雖然功能實在是更像是一個包裝。我只是直接使用python bulitin str()轉換列表,而不是試圖將它放入包裝函數中。

0

簡短的回答是:你不能完全按照你的要求。

你不能接受你在Python中輸入的任何列表,並得到一個完全相同的原始格式的字符串。 Python是與列表中的間距相當寬鬆,因此你可以構造列出這樣:

  1. ['hello', 'world']
  2. ['hello','world']
  3. [ 'hello', 'world' ]
  4. [ 'hello', 'world' ]

當Python創建這些列表的列表,它不保存關於您如何編寫它的信息。所以,沒有辦法讓它回來。

如果你只是想要一個字符串化列表,你應該使用json.dumps