2013-12-11 100 views
0

我有一個快速問題:a='Tom',類型str。我想用一件物品將它製成一套。如果我使用命令b = set(a),我得到了一個包含3個項目的集合,它是set(['m',''T','o'])。我想set(['Tom'])。我怎麼能得到它?謝謝。將字符串轉換爲集合而不拆分字符

+0

更多問題設置:這裏的「一」從列表collections.Counter的。這是計數最多的關鍵。事先不知道它是什麼,所以我不能手動完成。在這種情況下,怎樣才能讓它進入設定狀態? – Max577

+0

這是我的代碼和我的修復程序。但它對我來說太奇怪了!我用下面的代碼,它的工作原理! ---- b = set([a])----。我可以使用b來設置操作並作爲提取映射項目的關鍵字!這裏是代碼:import collections tt = ['Tom','Tom','Sam','Jon'] x = collections.Counter(tt) print(x) v,k = max((v中,k)爲K,v在x.items()) 打印(數k ='中,k) 打印( 'v =',v) 一個= K 打印( '一個=',一個) b =組(一) 打印( 'b =',b) ###不好 BB =集([A]) 打印( 'BB =',BB) ### BB是好的。 – Max577

回答

0
set(['Tom']) 

你剛剛回答了你自己的問題(給列表,而不是字符串)。

+0

如果「a」是從collections.Counter派生的變量,我該怎麼做?它實際上是最大數量的關鍵。在這種情況下,我無法手動分配它。 – Max577

0

像這樣:

a = "Tom" 

b = set([a]) 
+0

這是'tuple',而不是'set'。 – xfix

1

set內置使得套出iterables的。遍歷字符串產生每個字符一個接一個,讓包裹在一些其他迭代的字符串:

set(['Tom']) 
set(('Tom',)) 

如果你習慣爲集數學符號,你可以使用大括號(唐」弄不明白困惑與符號的字典):

{'Tom'} 
{'Tom', 'Bob'} 

產生的集是否相等

>>> {'Tom'} == set(['Tom']) == set(('Tom',)) 
True 
+0

我的問題是「a」來自collections.Counter的列表。這是計數最多的關鍵。事先不知道它是什麼,所以我不能手動完成。在這種情況下,怎樣才能讓它進入設定狀態? – Max577

+0

@ user3092695:如果'a'被替換爲''Tom'',就和你一樣。 – Blender