在 Python 中連線字串列表

Bishwas Ojha 2023年10月10日
  1. 在 Python 中使用 join() 方法將列表轉換為單個字串
  2. 在 Python 中使用 map() 函式將任何資料型別的列表轉換為單個字串
  3. 在 Python 中使用 for 迴圈將列表轉換為單個字串
在 Python 中連線字串列表

本文將介紹將 Python 列表中的專案連線為單個字串的方法。

在 Python 中使用 join() 方法將列表轉換為單個字串

join() 方法返回一個字串,其中字串分隔符連線元素序列。它以可迭代資料作為引數。

這種方法可以形象化如下:

"separator".join(["List", "of", " string"])

我們從 separator 呼叫 join() 方法並將字串列表作為引數傳遞。它根據所使用的分隔符返回字串。如果在分隔符中使用換行符\n,它將為每個列表元素插入一個新行。如果在分隔符中使用逗號 ,,它只會生成一個逗號分隔的字串。join() 方法返回一個可迭代的字串。如果任何非字串值是可迭代的,包括位元組物件,則將引發 TypeError。稱為生成器表示式的表示式用於讓所有資料型別都適用於它。

例如,建立一個變數 words_list 並在其上寫入一些列表元素。它們是 Joey, doesnot, sharefood。使用分隔符 " " 呼叫 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 並將一些列表項儲存到其中。它們是 Givemeacallat979797。然後,編寫一個 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

相關文章 - Python String