c=['a,b,c','a,b,c','a,b']
for item in c:
a=set(item.replace("'",""))
b=list(a)
print b
它返回:蟒蛇將字符串轉換成字符集
['a','b',',']
我要的是:
['a','b','c']
如何將這些字符串轉換成字符集?
c=['a,b,c','a,b,c','a,b']
for item in c:
a=set(item.replace("'",""))
b=list(a)
print b
它返回:蟒蛇將字符串轉換成字符集
['a','b',',']
我要的是:
['a','b','c']
如何將這些字符串轉換成字符集?
c = ['a,b,c', 'a,b,c', 'a,b']
print (set (''.join (c).replace (',', '')))
不適用於長度> 1的結果(例如'a,b,cd') – bluepnume
但OP詢問「如何將這些字符串轉換爲字符集?」,而不是字符串集。但我不知道。 – Hyperboreus
當然。我可能會這樣做,以節省字符串替換操作:'set(','。join(c).split(','))' – bluepnume
>>> c=['a,b,c','a,b,c','a,b']
>>> print set(unique for charlist in c for unique in charlist.split(','))
set(['a', 'c', 'b'])
c = ['a,b,c','a,b,c','a,b']
result = set()
for item in c:
result.update(item.split(','))
print result
這裏就是我所做的:
result
這樣我們就可以在c
和每個result
鑲有值從分割字符串因爲result
是一組,它不能包含同一項目的多個實例。所以當我們撥打result.update()
時,任何重複的條目都會被自動忽略。
如果要排序像你期望的輸出結果,你必須做到以下幾點,因爲集合是無序的:
result = list(result)
result.sort()
print result
列表有一個內置的排序方法。因此,從該集合創建一個列表,然後調用sort()
將對列表進行排序,這意味着它不會返回任何內容,但會修改列表本身。這樣做會給你['a', 'b', 'c']
這就是你想要的問題。
你爲什麼要更換'''?它不存在於字符串中。 – Keith
另外,每次迭代都會覆蓋您的'b'。你從哪裏得到'c'? – Keith
@約翰史密斯:我認爲你不理解。 '''不在列表中。用''''括起來的對象是一個字符串。 '''只是告訴你,那就是它。我想你想問的問題是「我怎麼樣)將這些字符串轉換成字符集並且b)找到所有這些集合的交集。」 –