将字符串转换为set时出现编译时错误?

时间:2014-12-04 14:06:02

标签: python set

我在最后一个声明中得到错误,但我不知道为什么请帮助我

def test_set_creation():
    """
    sets can be created from any sequence like list or a tuple.
    """
    test_list = [1, 2, 1, 3]
    set1 = set(test_list)
    assert {1,2,3} == set1

    test_string = "apple"
    set2 = set(test_string)
    assert {} == set2

2 个答案:

答案 0 :(得分:3)

{}创建一个空的字典,而不是空集。你的断言总会失败。

使用set()创建一个空集对象,您可能应该测试set2 为空:

assert set() != set2

来自set displays reference documentation

  

集合显示用花括号表示,并且由于缺少分隔键和值的冒号而与字典显示区分开来

     

[...]

     

无法使用{}构建空集;这个文字构造了一个空字典。

答案 1 :(得分:1)

您正在断言字典并设置最后一行中的错误。

>>> type({})
<type 'dict'>
>>> type(set())
<type 'set'>
>>>