希望打印数字列表,但希望在打印之前设置列表中每个成员的格式。例如,
theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577]
我希望打印以下输出,并将上面的列表作为输入:
[1.34, 7.42, 6.97, 4.55]
对于列表中的任何一个成员,我知道我可以使用
print "%.2f" % member
是否有一个命令/函数可以对整个列表执行此操作?我可以编写一个,但不知道是否已经存在一个。
zlhcx6iw1#
如果你只想打印数字,你可以使用一个简单的循环:
for member in theList: print "%.2f" % member
如果你想保存结果以备将来使用,你可以使用列表解析:
formattedList = ["%.2f" % member for member in theList]
然后,您可以打印此列表,以获得问题中的输出:
print formattedList
还要注意的是%已经被弃用了,如果你使用的是Python 2.6或者更新版本,最好使用format。
%
format
smdncfj32#
对于Python 3.5.1,可以使用:
>>> theList = [1.343465432, 7.423334343, 6.967997797, 4.5522577] >>> strFormat = len(theList) * '{:10f} ' >>> formattedList = strFormat.format(*theList) >>> print(formattedList)
结果是:
' 1.343465 7.423334 6.967998 4.552258 '
8mmmxcuj3#
使用“".format()和生成器表达式的简短解决方案:
>>> theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577] >>> print(['{:.2f}'.format(item) for item in theList]) ['1.34', '7.42', '6.97', '4.55']
qyswt5oh4#
您可以使用列表解析、连接和一些字符串操作,如下所示:
>>> theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577] >>> def format(l): ... return "["+", ".join(["%.2f" % x for x in l])+"]" ... >>> format(theList) '[1.34, 7.42, 6.97, 4.55]'
ssm49v7z5#
您可以使用Map功能
l2 = map(lambda n: "%.2f" % n, l)
piah890a6#
如果不需要保存值,请尝试以下方法:
list = [0.34555, 0.2323456, 0.6234232, 0.45234234] for member in list: form='{:.1%}'.format(member) print(form)
输出:
34.6% 23.2% 62.3% 45.2%
dy2hfwbg7#
您可以使用帮助函数:
def format_list(a, fmt, sep=', ', start='[', end=']'): return start + sep.join([format(x, fmt) for x in a]) + end
用法:
a=[4,8,15,16,23,42] print(f"%d is {format_list(a, 'd')} %x is {format_list(a, 'x')} %b is {format_list(a, 'b')}")
7条答案
按热度按时间zlhcx6iw1#
如果你只想打印数字,你可以使用一个简单的循环:
如果你想保存结果以备将来使用,你可以使用列表解析:
然后,您可以打印此列表,以获得问题中的输出:
还要注意的是
%
已经被弃用了,如果你使用的是Python 2.6或者更新版本,最好使用format
。smdncfj32#
对于Python 3.5.1,可以使用:
结果是:
8mmmxcuj3#
使用“".format()和生成器表达式的简短解决方案:
qyswt5oh4#
您可以使用列表解析、连接和一些字符串操作,如下所示:
ssm49v7z5#
您可以使用Map功能
piah890a6#
如果不需要保存值,请尝试以下方法:
输出:
dy2hfwbg7#
您可以使用帮助函数:
用法: