2012-07-23 15 views
0

好了,所以我必須在python兩個列表如何隱藏在輸出的「設置」關鍵字,而在使用Python設置

a = ['bad', 'horrible'] 
b = ['bad', 'good'] 

我使用了一套運算符來比較兩個列表,並給若輸出兩組之間存在一個共同的詞。

print set(a) & set (b) 

這使輸出,

set(['bad']) 

反正有沒有刪除輸出中的「設置」關鍵字?

我想輸出看起來像

['bad'] 
+2

呃,將輸出再次轉換爲列表? 'print list(set(a)&set(b))'.. – 2012-07-23 08:04:55

+0

你需要所有常用詞還是隻有一個? – jamylak 2012-07-23 08:06:29

+0

@MartijnPieters是的。非常感謝你! – user1452759 2012-07-23 08:13:05

回答

8

簡單地轉換集列出:

list(set(['bad'])) 
+1

非常感謝你幫助我。我是Python的新手。 – user1452759 2012-07-23 08:12:02

+0

@senderle你打算將一個集合轉換爲一個列表,例如記錄它的內容? – 2012-07-23 09:09:57

+0

@BasicWolf,好吧,OP對記錄沒有提及。這可能是性能優於此問題可讀性的罕見實例。但即使如此,這種方法仍然不錯。對我的計算機進行快速測試表明'str(list(s))'比使用'','.join(str(i)for i in x)'小2-3倍大! – senderle 2012-07-23 09:23:45

2

你可以做一個清單出來的:

list(set(['bad'])) 

看起來像

['bad'] 
1

如何不創建一個列表來輸出一個字符串,而只是創建一個要打印的字符串?

'[' + ', '.join(str(i) for i in your_set) + ']' 
# or 
'[{}]'.format(', '.join(str(i) for i in your_set)) 
+3

這太hacky,它看起來不好! – jamylak 2012-07-23 08:12:43

+0

這裏究竟是什麼?這是正常的Python,字符串格式,字符串連接()函數,遍歷一個集合並將每個元素轉換爲字符串。 – 2012-07-23 08:14:59

+1

最初的問題要求在字符串周圍加引號,因此您可能需要使用'repr()'而不是'str()',但這就是爲什麼人們建議只是將其轉換爲列表以獲取所需內容的最簡單方式。如果他只是想要一個用逗號分隔的簡單元素列表,那麼你的方式會非常棒,儘管在這種情況下,只是做'','.join(your_set)'會更簡單,因爲它已經被聲明爲一組字符串。 – Duncan 2012-07-23 08:39:07

相關問題