Python中如何让列表打印时所有元素统一使用双引号包裹?
Python中如何让列表打印时所有元素统一使用双引号包裹?
嘿,这个问题我碰到过好几次啦!Python默认打印列表的时候,会自动根据字符串里的引号类型来选择用单引号还是双引号包裹元素——就像你看到的,包含单引号的"it's"会用双引号,其他的用单引号,这是因为print()调用了元素的repr()方法,目的是输出合法的Python字面量,方便你直接复制使用。但如果就是想要统一的双引号格式,有两种简单的办法:
方法一:手动构造格式化字符串
自己遍历列表里的每个元素,给它们都套上双引号,再拼接成列表的样子:
mylist = ['joe', 'bob', "it's"] formatted_list = f'["{", ".join(f'"{item}"' for item in mylist)}"]' print(formatted_list)
运行之后就会输出:["joe", "bob", "it's"]
原理很简单:用生成器表达式给每个元素加上双引号,再用join()把它们用逗号隔开,最后前后补上[和]就行。
方法二:借助JSON模块
JSON格式里的字符串统一用双引号,所以直接用json.dumps()来序列化列表就行:
import json mylist = ['joe', 'bob', "it's"] print(json.dumps(mylist))
这个方法更省心,而且如果列表里有数字、布尔值这些非字符串元素,也能正确处理成JSON对应的格式。不过要注意,如果你的列表里有Python特有的类型(比如None会变成null),需要考虑是否符合你的需求。
另外你提到查文档没找到相关设置,其实Python默认的列表打印格式确实是预设的,没法直接通过print()的参数调整,所以上面这两种自定义输出的方式就是最常用的解决方案啦~
备注:内容来源于stack exchange,提问作者Giere
相关产品推荐
相关产品推荐

