如何在python字符串格式中仅添加不带括号的列表值

如何在python字符串格式中仅添加不带括号的列表值,python,Python,在下面的代码中,如何删除输出中的括号 [11]中的xx=[1,2,3,4] 在[12]中:打印(“%s BLAH”%xx) [1,2,3,4]废话 我希望输出为: 1, 2, 3, 4 BLAH 我正在寻找一个通用的解决方案,而不是下面这样的解决方案(我只想使用%s一次): 您必须将列表连接到字符串: print(“%s BLAH”%”,“.join(xx)) 使用此代码,您实际上可以在没有%s的情况下完成此操作: print(', '.join(xx) + " BLAH"

在下面的代码中,如何删除输出中的括号

[11]中的
xx=[1,2,3,4]
在[12]中:打印(“%s BLAH”%xx)
[1,2,3,4]废话
我希望输出为:

1, 2, 3, 4 BLAH
我正在寻找一个通用的解决方案,而不是下面这样的解决方案(我只想使用
%s
一次):


您必须将列表连接到字符串:

print(“%s BLAH”%”,“.join(xx))

使用此代码,您实际上可以在没有%s的情况下完成此操作:

print(', '.join(xx) + " BLAH")

简单的方法是使用

如果不想使用join,则重写list类的str dunder函数。请参阅下文:

class FancyList(list):
    def __repr__(self):
        fancy_output = ''
        for item in self:
            fancy_output += f'{item}, '
        return fancy_output.strip().strip(',')

    def __str__(self):
        return self.__repr__()

if __name__ == "__main__":
    a = [1,2,3,4]
    print(a)
    fancy_a = FancyList(a)
    print(fancy_a)
    print('%s BLAH' % fancy_a)
    fancy_a.append(100)
    print(fancy_a)
    print('%s BLAH' % fancy_a)
这给了我输出:

[1, 2, 3, 4]
1, 2, 3, 4
1, 2, 3, 4 BLAH
1, 2, 3, 4, 100
1, 2, 3, 4, 100 BLAH
谢谢(我意识到必须先将
xx
转换为list,您的解决方案才能工作)
class FancyList(list):
    def __repr__(self):
        fancy_output = ''
        for item in self:
            fancy_output += f'{item}, '
        return fancy_output.strip().strip(',')

    def __str__(self):
        return self.__repr__()

if __name__ == "__main__":
    a = [1,2,3,4]
    print(a)
    fancy_a = FancyList(a)
    print(fancy_a)
    print('%s BLAH' % fancy_a)
    fancy_a.append(100)
    print(fancy_a)
    print('%s BLAH' % fancy_a)
[1, 2, 3, 4]
1, 2, 3, 4
1, 2, 3, 4 BLAH
1, 2, 3, 4, 100
1, 2, 3, 4, 100 BLAH