我有一个列表,如:
myList = [1, 0, 0, 0, 1, 2]
Run Code Online (Sandbox Code Playgroud)
我想打印这个集合列表符号:
{1, 0, 0, 0, 1, 2}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将其打印为一组时,将删除重复项:
>>> set(mylist)
{0, 1, 2}
Run Code Online (Sandbox Code Playgroud)
我不希望删除重复项.如何使用set语法进行打印,但不删除任何重复项?
看起来像简单的字符串操作会起作用:
list_str = str(mylist).replace('[', '{').replace(']', '}')
Run Code Online (Sandbox Code Playgroud)
或者,甚至可能更好,我们可以切掉列表格式化字符串的第一个和最后一个字符,并用你想要的新大括号替换它们:
list_str = '{%s}' % (str(mylist)[1:-1])
Run Code Online (Sandbox Code Playgroud)
这更好的原因是它没有机会混淆列表的内容(如果你的列表包含可能包含或不包含'['字符的字符串,可以想象使用前面的代码).
如果仍然不适合你,你可以通过多种方式自己格式化整个字符串(通常包括获取每个项目的字符串表示并用逗号和空格连接它们).
list_str = '{%s}' % (', '.join(repr(item) for item in mylist))
list_str = '{%s}' % (', '.join(map(repr, mylist)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40 次 |
| 最近记录: |