如何解决通过列表推导以带有 f 字符串的格式化形式打印元组列表
我想以格式化的形式打印出元组列表... 我有以下列表,其中包含由字符串和其他浮点数元组组成的元组:
returnList = [('mountain_113',(1.5,1.0,1.0338541666666667,1.9166666666666667,0.6614583333333334,1.2598673502604167,0.03375385780420761,2.3029198140922946,0.1698906919822926,0.746665039060726)),('street_gre295',(2.0,1.033203125,0.84375,0.7421875,0.9375,0.654083251953125,1.9498253377306005,1.7506276776130898,1.1736444973883702,0.6882098607982887)),('opencountry_134',(1.0,0.99609375,1.10546875,1.875,0.9296875,1.740234375,0.015625,1.90625,0.0625,0.75))]
def format(inter): return f'{inter:.1f}'
[print(' '.join( list(map(format,n[1])) )) if i!=0 else print(n[0]) for i,n in enumerate(returnList)]
但是它会导致诸如
之类的错误Traceback (most recent call last):
File "main.py",line 69,in <module>
[print(' '.join( list(map(format,n in enumerate(listStatics)]
File "main.py",in <listcomp>
[print(' '.join( list(map(format,n in enumerate(listStatics)]
TypeError: 'float' object is not iterable
我需要按如下方式打印它们:打印元组的第一个元素,然后使用 format 函数将第二个元素的每个浮点数打印出来
我希望使用列表理解来打印它...对于 dalta 示例,它应该输出下面的数据
mountain_113 1.5 1.0 1.0 1.9 0.7 1.3 0.0 2.3 0.2 0.7
street_gre295 2.0 1.0 0.8 0.7 0.9 0.7 1.9 1.8 1.2 0.7
opencountry_134 1.0 1.0 1.1 1.9 0.9 1.7 0.0 1.9 0.1 0.8
解决方法
for i,t in returnList:
print(i," ".join(map("{:.1f}".format,t)))
打印:
mountain_113 1.5 1.0 1.0 1.9 0.7 1.3 0.0 2.3 0.2 0.7
street_gre295 2.0 1.0 0.8 0.7 0.9 0.7 1.9 1.8 1.2 0.7
opencountry_134 1.0 1.0 1.1 1.9 0.9 1.7 0.0 1.9 0.1 0.8
如果你想调用你的格式函数:
def format(inter):
return f"{inter:.1f}"
for i," ".join(map(format,t)))
,
这应该有效:
for t in returnList:
datapoints = [str(dt) for dt in t[1]]
print('{} {}'.format(t[0]," ".join(datapoints)))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。