python 设置列表所有元素的格式

qij5mzcb  于 2023-01-24  发布在  Python
关注(0)|答案(7)|浏览(137)

希望打印数字列表,但希望在打印之前设置列表中每个成员的格式。例如,

theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577]

我希望打印以下输出,并将上面的列表作为输入:

[1.34, 7.42, 6.97, 4.55]

对于列表中的任何一个成员,我知道我可以使用

print "%.2f" % member

是否有一个命令/函数可以对整个列表执行此操作?我可以编写一个,但不知道是否已经存在一个。

zlhcx6iw

zlhcx6iw1#

如果你只想打印数字,你可以使用一个简单的循环:

for member in theList:
    print "%.2f" % member

如果你想保存结果以备将来使用,你可以使用列表解析:

formattedList = ["%.2f" % member for member in theList]

然后,您可以打印此列表,以获得问题中的输出:

print formattedList

还要注意的是%已经被弃用了,如果你使用的是Python 2.6或者更新版本,最好使用format

smdncfj3

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 '
8mmmxcuj

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']
qyswt5oh

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]'
ssm49v7z

ssm49v7z5#

您可以使用Map功能

l2 = map(lambda n: "%.2f" % n, l)
piah890a

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%
dy2hfwbg

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')}")

相关问题