【问题标题】:Strings in 2D lists in PythonPython中二维列表中的字符串
【发布时间】:2019-05-28 11:39:09
【问题描述】:

这是 python 中的普通二维列表,包含应该是空格的内容:

shape = [
["", "", ""],
["", "", ""],
["", "", ""]]

但是当使用 for 循环打印这个数组时,会发生这种情况:

['', '', '']
['', '', '']
['', '', '']

它不应该只显示空白吗?如何删除这些单引号但保留逗号?

【问题讨论】:

  • 你说它包含空格是什么意思?您的初始列表包含 9 个空字符串。当然那里没有空白。请更详细地解释您要做什么。
  • 这里没有错误。你有一个二维列表。所以每个项目都是一个列表,它就是它打印的内容,一个带有空字符串的列表。 shape[0] 将包含 ['', '', ''] shape[0][0] 将不打印任何内容,因为那是空字符串
  • 你不会得到a = [,,]这种列表,因为它在Python中是无效的
  • space 是一个字符串。字符串用引号格式化。您想删除引号并显示space? python中没有这样的东西!
  • 也许可以解释一下为什么你要这样做,这可能有助于我们更好地理解你真正想要做什么

标签: python


【解决方案1】:

不,它显示了所有内容,要删除它,您需要做一些字符串替换:

print(str(shape).replace("'", '').replace('], [', '],\n ['))

哪些输出:

[[, , ],
 [, , ],
 [, , ]]

【讨论】:

  • 这将是字符串类型。您只需更改对象的表示形式
  • @BlueSheepToken 用list是不可能的
  • 并将其转换为类型列表会给出可怕的答案,我认为这不是 OP 想要的。
  • 这个确实有效,但我如何使列表彼此下方?
  • 这是我的例外。谢谢
【解决方案2】:

如果只是在屏幕上打印一些东西,你不需要先创建一个列表,只需创建一个这样的字符串:

print("[ , , ]\n[ , , ]\n[ , , ]")

甚至

print("[ | | ]\n[ | | ]\n[ | | ]")

我觉得更好看:

[ , , ]                                                                                                                                                                                                                                         
[ , , ]                                                                                                                                                                                                                                         
[ , , ]                                                                                                                                                                                                                                         

[ | | ]                                                                                                                                                                                                                                         
[ | | ]                                                                                                                                                                                                                                         
[ | | ]

【讨论】:

  • 如果它只是关于打印,但列表的元素稍后会更改,这只是最初的外观。感谢您的建议
【解决方案3】:

您可以遍历您的列表并将引号替换为空格

for x in shape:
print(str(x).replace("'", ""))

哪些输出:

[, , ]
[, , ]
[, , ]

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 2022-11-20
    • 2017-12-06
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    相关资源
    最近更新 更多