array = format([
v if v is not None else "*" for v in self._tree.bfs_order_star()
])
上面的代码返回以下格式的字符串:
输出: [ 10, 5, 15, '*', '*','*', 20 ]
如何更改它,以使*(星号)(无值)不被引号引起来?我尝试了以下方法,但没有成功。
array = format([
v if v is not None else "*" for v in self._tree.bfs_order_star()
]).strip('"\'')
答案 0 :(得分:1)
在打印时使用replace()
方法删除引号:
#Convert list to string and replace/remove specific characters.
str(lst).replace("[character to replace/remove]", "[character to replace with or leave empty to remove.]")
答案 1 :(得分:0)
您可以创建一个类/对象,其表示形式实际上只是一个星星:
class Star:
def __repr__(self):
return '*'
演示:
>>> print([1, '*', 2])
[1, '*', 2]
>>> print([1, Star(), 2])
[1, *, 2]