打印不带引号的字典?

假设我有一个非嵌套字典:

>>> foo = {'a': 123, 'b': 'asdf', 'c': 'Hello, world!'}

我可以打印它:

>>> print(foo)
{'a': 123, 'b': 'asdf', 'c': 'Hello, world!'}

是否有任何内置或其他方便的方法可以在没有引号和括号的情况下将其打印在单行中?

a: 123, b: asdf, c: Hello, world!

这是假设没有嵌套字典的情况。


拉风的咖菲猫
浏览 1611回答 4
4回答

慕的地10843

或者,您可以创建自己的对象:class NicelyPrintingDict():    def __init__(self, some_dictionary):        self.some_dictionary = some_dictionary    def __str__(self):        s = ''        for key, value in self.some_dictionary.items():            s += key + ': ' + str(value) + ' '         return s.strip()然后,按如下方式使用它:foo = {'a': 123, 'b': 'asdf', 'c': 'Hello, world!'}nice_foo = NicelyPrintingDict(foo)print(nice_foo)

慕尼黑8549860

您可以删除所有不需要的字符,然后根据需要打印它,如下所示:foo = {'a': 123, 'b': 'asdf', 'c': 'Hello, world!'} print (str(foo).replace("{","").replace("'","").replace("}",""))输出:a: 123, b: asdf, c: Hello, world!注意,只要字符{,}或'是字典的一部分,该解决方案就会失败更详细地 - 当调用str函数时 - 每个对象都可以实现__str__返回字符串的函数(您可以为自定义类自己实现它)。当利用它时 - 从函数返回的 str 可以被视为任何其他字符串并替换您想要的任何内容。

千万里不及你

如果你知道你一直在使用哪些字段,你可以这样做:foo = {    'a': 123,    'b': 'asdf',    'c': 'Hello, World!'}print(f"a: {foo['a']} b: {foo['b']} c: {foo['c']}")a:123 b:asdf c:你好,世界!

蝴蝶刀刀

foo = {'a': 123, 'b': 'asdf', 'c': 'Hello, world!'}for i,j in foo.items():    print(i, ":", j, end = ",")a : 123, b : asdf, c : Hello, world!,
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python