如何实现无空格逗号分隔且大括号包裹的Python集合打印?
解决Python打印无空格逗号分隔、两侧带大括号的集合内容问题
问题描述
现有代码:
x = [1,3,6,7] x = set(x) print('{', *x, "}", sep=',')
输出结果为:
{,1,3,6,7,}
期望输出格式:
{1,3,6,7}
解决方法
方法1:使用f-string拼接(推荐)
将集合元素转为字符串后用逗号连接,再通过转义的大括号包裹:
x = [1,3,6,7] x_set = set(x) print(f"{{{','.join(map(str, x_set))}}}")
方法2:利用集合的字符串表示替换空格
集合默认的字符串格式是{1, 3, 6, 7},直接去掉其中的空格即可:
x = [1,3,6,7] x_set = set(x) print(str(x_set).replace(' ', ''))
方法3:字符串直接拼接
把元素连接成逗号分隔的字符串,再手动拼接前后大括号:
x = [1,3,6,7] x_set = set(x) print('{' + ','.join(map(str, x_set)) + '}')
原代码问题原因
原代码中print('{', *x, "}", sep=',')会把{、集合的每个元素、}作为独立参数传入print,sep参数会在所有参数之间添加逗号,因此出现了开头{后和结尾}前的多余逗号。
内容的提问来源于stack exchange,提问作者ERJAN
相关产品推荐
相关产品推荐

