Python格式化小数保留两位小数 避免生成嵌套列表的解决方法
问题原因
你当前的写法是将列表推导式生成的整个格式化价格列表作为row2的第二个元素,因此会产生嵌套结构。
解决方案
方法1:使用*解包可迭代对象(Python 3.5+支持,写法最简洁)
直接在列表推导式前加*,将列表里的元素逐个展开到外层列表中:
row2 = [gem, *['%.2f'%i for i in price_data]] print(row2)
输出结果:
['gold', '1.00', '2.00', '200.00', '500.00', '600.00']
方法2:列表拼接(兼容所有Python版本)
将包含gem的单元素列表和格式化后的价格列表做拼接,得到一维列表:
row2 = [gem] + ['%.2f'%i for i in price_data] print(row2)
可选优化:用f-string格式化(可读性更高)
你也可以把旧式的格式化写法替换为f-string,代码更直观:
row2 = [gem, *[f"{i:.2f}" for i in price_data]]
内容的提问来源于stack exchange,提问作者Maverick
相关产品推荐
相关产品推荐

