我有一个列表,例如:
myList = [1, 0, 0, 0, 1, 2]
我想将其打印为设置列表符号:
{1, 0, 0, 0, 1, 2}
但是,当我尝试将其作为一组打印时,将删除重复项:
>>> set(mylist)
{0, 1, 2}
我不希望删除重复项。如何使用set语法进行打印,但不删除任何重复项?
答案 0 :(得分:7)
似乎简单的字符串操作就可以了:
list_str = str(mylist).replace('[', '{').replace(']', '}')
或者,或许甚至更好,我们可以切掉列表格式化字符串的第一个和最后一个字符,并用你想要的新大括号替换它们:
list_str = '{%s}' % (str(mylist)[1:-1])
这是明显的原因,因为它没有机会混淆列表的内容(如果你的列表包含可能有或没有'['
的字符串,可以想象使用前面的代码嵌入其中的字符)。
如果仍然不适合你,你可以通过多种方式自己格式化整个字符串(通常包括获取每个项目的字符串表示并用逗号和空格连接它们)。
list_str = '{%s}' % (', '.join(repr(item) for item in mylist))
list_str = '{%s}' % (', '.join(map(repr, mylist)))