所以我遇到这个问题时,试图格式化数字有两个小数点。虽然我知道你可以使用这个代码'[%.2f'%i for i in price_data]
price1 = 1
price2 = 2
price3= 200
price4 =500
price5 =600
price_data = [price1, price2, price3, price4, price5]
my_list = [1,2,3,4,5]
gem = 'gold'
row1 = [gem, price1, price2, price3, price4, price5 ]
print(row1)
output = ['gold', 1, 2, 200, 500, 600]
row2 =[gem, ['%.2f'%i for i in price_data]]
print(row2)
output = ['gold', ['1.00', '2.00', '200.00', '500.00', '600.00']]
我想得到相同的答案,但不让输出是列表中的列表。在最后一个输出周围是否有任何东西,以便我将其作为以下返回的项获得?
output = ['gold', '1.00', '2.00', '200.00', '500.00', '600.00']
我建议使用f-string代替旧的%
插值:
output = [gem, *(f'{i:.2f}' for i in price_data)]
我所做的另一个更改是删除了推导式并使用生成器代替。这意味着价格数据list
不会首先在内存中创建,然后再解压缩。这是目前为止最快,最节省内存的建议。
你可以
-
将内部列表平铺到外部列表
row2 = [gem, *['%.2f' % i for i in price_data]]
-
或连接列表
row2 = [gem] + ['%.2f' % i for i in price_data]
my_list = [1,2,3,4,5]
gem = 'Gold'
gem_l = [gem]
for i in my_list:
gem_l.append(i)
print(gem_l)