【问题标题】:How to remove square brackets from list in Python? [duplicate]如何从 Python 列表中删除方括号? [复制]
【发布时间】:2012-10-23 20:21:03
【问题描述】:
LIST = ['Python','problem','whatever']
print(LIST)

当我运行这个程序时,我得到了

[Python, problem, whatever]

是否可以从输出中删除方括号?

【问题讨论】:

  • 我建议 map 而不是 str(i) for i in LIST - map 是 C 代码,所以它更快
  • list comprehension 实际上比 Python2 中的 map 更快,因为它不会创建计算量很大的堆栈帧。地图创建它。但是这种行为是有问题的,如果之前声明了具有相同名称的变量,则列表理解中的变量可能会由于重新绑定而泄漏。 Python3 中的列表推导没有出现这样的问题,因为它被更改为创建一个堆栈帧以与生成器表达式保持一致。

标签: python list output


【解决方案1】:

您可以将其转换为字符串,而不是直接打印列表:

print(", ".join(LIST))

如果列表中的元素不是字符串,您可以使用repr(如果您想要在字符串周围加上引号)或str(如果您不这样做)将它们转换为字符串,如下所示:

LIST = [1, "foo", 3.5, { "hello": "bye" }]
print( ", ".join( repr(e) for e in LIST ) )

它给出了输出:

1, 'foo', 3.5, {'hello': 'bye'}

【讨论】:

  • 谢谢,但如果我的 LIST 中有数字怎么办?
  • @GregorGajič then ", ".join(str(i) for i in LIST)
  • @GregorGajič:答案已更新。
  • 如果像这样,我如何删除第一个括号,[['String-1','String-2','String-3']],结果将是这样的['String-1','String-2','String-3']
【解决方案2】:

是的,有几种方法可以做到这一点。例如,您可以将列表转换为字符串,然后删除第一个和最后一个字符:

l = ['a', 2, 'c']
print str(l)[1:-1]
'a', 2, 'c'

如果您的列表只包含字符串并且您也想删除引号,那么您可以使用前面提到的join 方法。

【讨论】:

    【解决方案3】:

    如果列表中有数字,则可以使用mapstr 应用于每个元素:

    print ', '.join(map(str, LIST))
    

    ^ map 是 C 代码,所以它比 str(i) for i in LIST

    【讨论】:

      【解决方案4】:
      def listToStringWithoutBrackets(list1):
          return str(list1).replace('[','').replace(']','')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-29
        • 2023-03-16
        • 2020-08-11
        • 1970-01-01
        • 2020-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多