在 Python 中連線字串列表
-
在 Python 中使用
join()方法將列表轉換為單個字串 -
在 Python 中使用
map()函式將任何資料型別的列表轉換為單個字串 -
在 Python 中使用
for迴圈將列表轉換為單個字串
本文將介紹將 Python 列表中的專案連線為單個字串的方法。
在 Python 中使用 join() 方法將列表轉換為單個字串
join() 方法返回一個字串,其中字串分隔符連線元素序列。它以可迭代資料作為引數。
這種方法可以形象化如下:
"separator".join(["List", "of", " string"])
我們從 separator 呼叫 join() 方法並將字串列表作為引數傳遞。它根據所使用的分隔符返回字串。如果在分隔符中使用換行符\n,它將為每個列表元素插入一個新行。如果在分隔符中使用逗號 ,,它只會生成一個逗號分隔的字串。join() 方法返回一個可迭代的字串。如果任何非字串值是可迭代的,包括位元組物件,則將引發 TypeError。稱為生成器表示式的表示式用於讓所有資料型別都適用於它。
例如,建立一個變數 words_list 並在其上寫入一些列表元素。它們是 Joey, doesnot, share 和 food。使用分隔符 " " 呼叫 join() 方法。使用 words_list 變數作為函式中的引數。對整個表示式使用 print() 函式。
在下面的示例中,join() 函式將 words_list 變數作為引數。然後,在每個列表元素之間插入分隔符 " "。最後,作為輸出,它返回字串 Joey does not share food。
示例程式碼:
# python 3.x
words_list = ["Joey", "doesnot", "share", "food"]
print(" ".join(words_list))
輸出 :
Joey doesnot share food
在 Python 中使用 map() 函式將任何資料型別的列表轉換為單個字串
map() 函式將作為引數傳遞給可迭代物件(如列表和元組)的特定函式應用。該函式被傳遞而不呼叫它。這意味著函式中沒有括號。看起來 map() 函式是將 Python 列表轉換為字串的更通用的方法。
這可以視覺化為:
data: d1, d2, d3, .... dn
function: f
map(function, data):
returns iterator over f(d1), f(d2), f(d3), .... f(dn)
例如,建立一個變數 word_list 並將一些列表項儲存到其中。它們是 Give、me、a、call、at 和 979797。然後,編寫一個 map() 函式並將一個函式 str 和一個變數 words_list 作為引數傳遞給 map() 函式。編寫一個 join() 函式並將 map 物件作為其引數。使用空字串" " 呼叫 join() 函式。使用 print() 函式列印表示式。
str 函式被呼叫到所有列表元素,因此所有元素都被轉換為字串型別。然後,在每個 Map 物件之間插入空格" ",並返回輸出部分中顯示的字串。
# python 3.x
words_list = ["Give", "me", "a", "call", "at", 979797]
print(" ".join(map(str, words_list)))
輸出:
Give me a call at 979797
在 Python 中使用 for 迴圈將列表轉換為單個字串
我們可以使用 for 迴圈從列表中獲取單個字串。在此方法中,我們遍歷所有值,然後將每個值附加到一個空字串。這是一個簡單的過程,但需要更多的記憶體。我們在迭代器旁邊新增一個分隔符以附加一個空字串。
例如,建立一個變數 words_list 並儲存列表項。接下來,建立一個空字串 sentence。使用 for 迴圈並使用變數 word 作為迭代器。對 word 使用 str() 方法並將其新增到變數 sentence。然後,將 "." 作為字串新增到函式中。之後,將表示式分配給變數 sentence。在迴圈外列印變數。
在這個例子中,python 列表 words_list 包含一個元素列表。空字串變數 sentence 用於在迴圈中附加列表元素。在迴圈內部,str() 方法將元素型別轉換為字串,而 "." 充當附加到空字串 sentence 的每個可迭代項之間的分隔符。
示例程式碼:
# python 3.x
words_list = ["Joey", "doesnot", "share", "food"]
sentence = ""
for word in words_list:
sentence += str(word) + "."
print(sentence)
輸出:
Joey.doesnot.share.food