我收到了如下字典:
a = [('Ma', [128.35226732698018]), ('Ta', [56.42857142857143]), ('Eg', [46.35428571428572]), ('Ky', [41.6177429876057])]
我想要输出的东西是这样的:
Ma (128.35)
Ta (56.43)
Eg (46.35)
Ky (41.62)
如何摆脱列表和元组并将数字更改为float:2f
?
答案 0 :(得分:3)
a = [('Ma', [128.35226732698018]), ('Ta', [56.42857142857143]), ('Eg', [46.35428571428572]), ('Ky', [41.6177429876057])]
for k in a:
print(k[0], '{:.2f}'.format(k[1][0]))
答案 1 :(得分:3)
以下使用值解包和字符串格式化,这些都非常重要,可以了解:
a = [('Ma', [128.35226732698018]), ('Ta', [56.42857142857143]), ('Eg', [46.35428571428572]), ('Ky', [41.6177429876057])]
for k, v in a:
print('{} ({:.2f})'.format(k, *v))
输出:
Ma (128.35)
Ta (56.43)
Eg (46.35)
Ky (41.62)
正如@ Ajax1234所述,*
运算符执行的解包仅适用于Python 3.如果您使用的是Python 2,则可以用{{1}替换*v
}}。请注意,后者适用于两者。
答案 2 :(得分:1)
您可以解压缩值并进行舍入:
a = [('Ma', [128.35226732698018]), ('Ta', [56.42857142857143]), ('Eg', [46.35428571428572]), ('Ky', [41.6177429876057])]
for name, [value] in a:
print(name, "({})".format(round(value, 2)))
最终输出:
Ma (128.35)
Ta (56.43)
Eg (46.35)
Ky (41.62)
答案 3 :(得分:0)
a = [('Ma', [128.35226732698018]), ('Ta', [56.42857142857143]), ('Eg', [46.35428571428572]), ('Ky', [41.6177429876057])]
[print(elem[0],'('+str(round(elem[1][0],2))+')') for elem in a]
列表理解如何。