我如何将字符串转换为python中的集合

cra*_*rax 5 python

我有一串

sample = "http://www.stackoverflow.com"
Run Code Online (Sandbox Code Playgroud)

我想将此字符串转换为一组

final = {"http://www.stackoverflow.com"}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码:

final = set(sample)
Run Code Online (Sandbox Code Playgroud)

但是我错了

{u'.', u'/', u':', u'a', u'b', u'c', u'e', u'h', u'i', u'k', u'l', u'n', u'p', u's', u't', u'w'}
Run Code Online (Sandbox Code Playgroud)

我也用过

final  = ast.literal_eval(Sample)
Run Code Online (Sandbox Code Playgroud)

我知道了

SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

还有其他解决方案吗

小智 7

去做就对了:

In [1]: s = "http://www.stackoverflow.com"

In [2]: f = {s}

In [3]: type(f)
Out[3]: builtins.set

In [4]: f
Out[4]: {'http://www.stackoverflow.com'}
Run Code Online (Sandbox Code Playgroud)


Mic*_*erz 7

sample = "http://www.stackoverflow.com"
final = set((sample, ))
Run Code Online (Sandbox Code Playgroud)


Kas*_*mvd 5

set()类,它也被认为是内置型,接受一个迭代,并返回一个从迭代唯一项目set对象。在这里,由于字符串被认为是一种可迭代的——字符形式——你不能只在你的字符串上调用它。相反,您可以在定义字符串对象时将其直接放在集合中,或者如果您被迫使用set(),则可以在将其传递给set().

In [14]: s = {'sample string'}                                                                                                                                                                              

In [15]: s                                                                                                                                                                                                  
Out[15]: {'sample string'}

In [16]: s = set(['sample string'])                                                                                                                                                                         

In [17]: s                                                                                                                                                                                                  
Out[17]: {'sample string'}
Run Code Online (Sandbox Code Playgroud)