Python中字典值为列表时,如何无方括号打印所有列表元素
解决字典值(列表)无方括号打印所有元素的问题
嘿,我太懂你遇到的这个小麻烦了——想把字典里的列表值完整打印出来,结果要么只显示第一个元素,要么带着烦人的方括号,确实够闹心的。咱们来快速搞定它!
先说说你之前尝试的问题出在哪
- 用
*value的时候,format()函数里只给了一个{}对应值的位置,所以它只会取列表的第一个元素,剩下的元素没地方“放”,自然就被忽略了; - 直接用
value的话,Python会默认把整个列表转换成带方括号的字符串格式,这肯定不是你想要的效果。
最通用的解决方案:用str.join()拼接列表元素
这是最灵活也最省心的方法,把列表里的所有元素用你喜欢的分隔符拼接成一个普通字符串,打印出来就完全符合需求了。代码如下:
items = ['Item 1', 'Item 2', 'Item 3'] new_items = {'bacon': items, 'bread': items, 'cheese': items} for key, value in new_items.items(): # 这里用逗号加空格分隔元素,你可以换成任意分隔符,比如' | '或者'\n' print('{}: {}'.format(key, ', '.join(value)))
运行这段代码,输出会是:
bacon: Item 1, Item 2, Item 3 bread: Item 1, Item 2, Item 3 cheese: Item 1, Item 2, Item 3
可选方案:展开元素匹配占位符(适合固定长度列表)
如果你的列表长度是固定不变的,也可以直接展开列表元素,同时在format()里写对应数量的占位符,比如:
for key, value in new_items.items(): print('{}: {}, {}, {}'.format(key, *value))
但这种方法的局限性很明显——要是列表长度变了,你就得跟着修改占位符数量,所以还是join()的方法更靠谱。
内容的提问来源于stack exchange,提问作者new_to_py
相关产品推荐
相关产品推荐

