【问题标题】:How can I remove the square brackets in Python? [duplicate]如何删除 Python 中的方括号? [复制]
【发布时间】:2023-03-16 01:02:02
【问题描述】:

例如,我有一个列表列表:

[[['--w'], ['ww-'], ['bbb']], [['w--'], ['-ww'], ['bbb']]]

我想去掉内在的,变成这样

[['--w', 'ww-', 'bbb'], ['w--', '-ww', 'bbb']]

我该怎么做?

【问题讨论】:

  • 你自己尝试过什么?发生了什么?你期待什么?
  • 这是一个包含单个元素的列表吗?您也许可以返回第一个索引
  • 在被要求使现有答案无效后,请勿更改您的问题。您的更改后问题只是Flatten list of lists 的扩展;您可以在最外面的list 上的list 组合中应用该问题的答案,以使内部lists 变平。

标签: python


【解决方案1】:

如果这只是为了打印,你可以这样做:

list_o_lists_o_lists = [[['--w'], ['ww-'], ['bbb']], [['w--'], ['-ww'], ['bbb']]]
print(*list_o_lists_o_lists, sep=", ")

它将外部list解包到其两个内部lists作为print的顺序参数,分别打印每个,而sep=", "告诉print在它们之间放置一个逗号和空格,得到你想要的显示,但不改变数据结构。

但除此之外,您想要的东西是不可能的;删除外括号会留下两个需要存储在 something 中的元素。删除了这些括号的文字是 tuple:

[['--w'], ['ww-'], ['bbb']], [['w--'], ['-ww'], ['bbb']]

tuplerepr 包含括号,因此如果您在没有特殊格式化工作的情况下打印它,您只需将外括号替换为括号:

>>> [['--w'], ['ww-'], ['bbb']], [['w--'], ['-ww'], ['bbb']]
([['--w'], ['ww-'], ['bbb']], [['w--'], ['-ww'], ['bbb']])

【讨论】:

  • 这个变量命名...伤了我的眼睛
  • @megargayu:是的,太糟糕了。 :-) 但它也清楚地说明了这个例子的结构是什么。 OP 谈到删除括号,但它们不是装饰性的,它们是外部 list,他们必须知道这一点。
  • 为此,使用评论会更容易(也更简洁)
  • 对于一次性示例?谁在乎?我绝对不是建议他们在实际代码中实际使用这个名称,但我不知道这些数据应该代表什么,所以这就是我所能描述的。
  • 好吧,我猜你是对的。仅适用于阅读此内容的人:请勿将您的变量命名为“list_o_lists_o_lists”!!!相反,请使用有意义的短变量名并添加 cmets 以进行额外描述。
【解决方案2】:

您的描述与您想要的输出不匹配。您所需的输出已删除内括号,而不是外括号。要删除内括号,您可以这样做

[[item[0] for item in inner_list] for inner_list in outer_list]

【讨论】:

  • 哪个是item,哪个是inner_list?
  • 叹息...他们编辑了问题以完全改变所需的输出格式,同时保持对目标的描述不变。
  • @myy39 iteminner_list 都是虚拟变量。它们在遍历列表时存在,但不引用外部的任何内容。 outer_list 指的是整个列表,它是唯一需要定义的变量。
【解决方案3】:

试试这个

[[j[0] for j in i] for i in [[['--w'], ['ww-'], ['bbb']], [['w--'], ['-ww'], ['bbb']]]]

输出:

[['--w', 'ww-', 'bbb'], ['w--', '-ww', 'bbb']]

【讨论】:

  • origin[0] 将给出 [['--w'], ['ww-'], ['bbb']]
  • 有人可以向我解释为什么人们认为这行得通以及为什么他们赞成吗?
  • @toptalent:在这种情况下,您可以很容易地编写result1, result2 = origin,而无需构建一个新的tuple 来解压它。但它仍然没有输出,你是说你会以一种特定的方式看到它,而没有实际显示它的显示方式(现在你正在解包,有多个“它的”,所以“输出”就更没有意义了)。
  • 这是一些复杂的列表理解...也许将其拆分为不同的变量以便它真正可读?此外,对这里发生的事情进行描述会很好。
猜你喜欢
  • 2012-10-23
  • 1970-01-01
  • 2020-05-27
  • 1970-01-01
  • 2016-04-29
  • 1970-01-01
  • 2019-11-10
  • 2020-08-14
  • 2016-03-17
相关资源
最近更新 更多