我有以下测试,
def test_strings_concatenation(self):
dict = ['a', 'b', 'c']
dict_as_string = " ".join(dict)
expected = 'a b c'
assert dict_as_string is expected
,而我想准确获得dict
,(与相同)expected
。有什么办法吗?
答案 0 :(得分:1)
首先,切勿使用像dict
这样的预定义常量作为@Amadan指出的变量名,而且['a', 'b', 'c']
也是list
,而不是dictionary
,(这是保存键值对(例如{"a":"b"}
的容器。
另外,由于您希望将列表连接到字符串而不是==
,因为is
检查两个对象是否引用相同的位置,因此您还需要检查is
@TomaszBartkowiak指出的记忆力,就像下面的
In [21]: a = 1
In [22]: b = a
In [23]: a is b
Out[23]: True
In [24]: li = ['a', 'b', 'c']
In [25]: s = ' '.join(li)
In [26]: s is li
Out[26]: False
因此,代码将更改为
def test_strings_concatenation():
#Define list and concatenate it
li = ['a', 'b', 'c']
li_as_string = " ".join(li)
expected = 'a b c'
#Check for string equality
assert li_as_string == expected
test_strings_concatenation()