python - 用大括号代替括号python加入二维列表
问题描述
我想将 python 输出提供给乳胶脚本,但乳胶用大括号定义二维数组,python 使用括号。所以我希望从 python 打印输出,但将括号转换为大括号!
例如:在二维列表下方打印:
mylst = [[1,2],[3,4],[5,6]]
print(mylst)
输出
[[1, 2], [3, 4], [5, 6]]
我怎样才能得到一个带大括号的字符串,如下所示:
{{1,2},{3,4},{5,6}}
解决方案
print
并不完全“输出字符串”,而是将所提供表达式的字符串表示形式写入标准输出。通常这与执行后得到的结果相同,s = str(<some expression>)
但绝对不是总是如此,尤其是对于更复杂的类型。
如果您只想创建一个看起来像您的示例的字符串并打印它,您可以使用如下函数执行某些操作:
def list_in_braces(xs):
return f'{{{",".join(str(x) if not isinstance(x, list) else list_in_braces(x) for x in xs)}}}'
mylst = [[1,2],[3,4],[5,6]]
print(list_in_braces(mylst))
其中,如果 f 字符串令人困惑:
def list_in_braces(xs):
return '{' + ','.join(str(x) if not isinstance(x, list) else list_in_braces(x) for x in xs) + '}'
您也可以执行@Chris 在评论中建议的操作,但这有一些其他限制和陷阱(例如,值中的其他任何地方都不能有括号):
print(str(mylst).replace('[', '{').replace(']', '}'))
但是你会在其中得到空格,因为这就是 Python 打印列表的方式。To 也可以去掉这些:
print(str(mylst).replace('[', '{').replace(']', '}').replace(' ',''))
我的口味有点乱。请注意,在列表上使用花括号通常不是一个好主意,因为它提醒 Python 程序员注意集合或字典,而许多其他程序员也期望像字典这样的东西,所以我不确定你为什么首先需要它...
推荐阅读
- maven - maven-archetype-plugin 中的 ClassNotFoundException
- nsis - 如何将文件(.exe .txt 等)嵌入到 NSIS 安装程序中以创建一个大的 .EXE 安装程序包?
- ios - 安装 Xcode 11 后无法在模拟器上运行应用程序 - CFBundleVersion 错误
- sql - 从行中选择值较小的行
- sql - 从分组查询中删除连接操作
- python-3.x - 在mac中使用python3将doc.x转换为pdf文件
- javascript - Cloud Function - BigQuery 仅返回一个具有域的对象 ( null )
- flow-project - 如何使用 Flow 处理异构流量?
- angular - Angular 尝试获取特定值不起作用
- vba - 为什么当我粘贴到另一个工作簿和 SaveAs 时 VBA 会给出对象错误