2011-09-06 107 views
43

基本上,我試圖將一組條目連接在一起以便輸出一個字符串。我正在嘗試使用類似於列表的連接函數的語法。這裏是我的嘗試:Python:如何將一個集合中的條目合併爲一個字符串?

list = ["gathi-109","itcg-0932","mx1-35316"] 
set_1 = set(list) 
set_2 = set(["mx1-35316"]) 
set_3 = set_1 - set_2 
print set_3.join(", ") 

但是我得到這個錯誤:AttributeError: 'set' object has no attribute 'join'

什麼是等價呼籲套?

回答

99
', '.join(set_3) 

join是一個字符串方法,沒有一套方法。

+0

謝謝!我是一名紅寶石程序員,所以這對我來說都是新的。 – Spencer

+10

如果你的集合包含整數/長整數,你必須使用'','.join(str(s)for s in set_3)'' – NiCU

2

我想你只是把它倒過來。

print ", ".join(set_3) 
+0

語法沒有無效? 'print(「,」.join(set_3))' – surfer190

+1

它在2.7中有效。 – recursive

4

join被稱爲弦上:

print ", ".join(set_3) 
3

也不set也不list有這樣的方法join,串有它:

','.join(set(['a','b','c'])) 

通過你不應該使用的名稱list方式爲你的變量。給它一個list_,my_list或其他一些名字,因爲list是很常用的python函數。

2

你向後連接語句嘗試:

print ', '.join(set_3) 
22

集沒有join方法,但你可以使用str.join代替。

', '.join(set_3) 

str.join方法可用於任何可迭代對象,包括列表和集合。

注意:小心使用包含整數的集合;您需要在加入呼叫之前將整數轉換爲字符串。例如

set_4 = {1, 2} 
', '.join(str(s) for s in set_4) 
3

設置的沒有一個訂單 - 讓你可能失去您的訂單,當您轉換你的名單分成一組,即:

>>> orderedVars = ['0', '1', '2', '3'] 
>>> setVars = set(orderedVars) 
>>> print setVars 
('4', '2', '3', '1') 

一般的順序將保持,但對於大集幾乎肯定不會。

最後,只要incase人們想知道,你不需要在加入','。

只是: ''。加入(套)

:)

相關問題