如何在python中附加到列表时格式化字符串和小数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python中附加到列表时格式化字符串和小数相关的知识,希望对你有一定的参考价值。

我试图格式化十进制(到2个小数点)和可能的字符串WHILE BUILDING包含dictonaries的列表。我正在使用Python 3。

这就是我提出的,但显然它不起作用(因此问题。)

class foo:
    def __init__(self):
        self.datalist = []

    def push_data(self, s1, int2, flt3):
        self.datalist.append({
            "s1": '%s',
            "int2": '%i',
            "dec3": '%0.2f'
        }) % (s1, int2, flt3)

    def print_data(self):
        print(self.datalist)


f = foo()
f.push_data("HelloWorld", 1, 3.1415)
f.print_data()

我希望列表包含

[{'s1': 'HELLOWORLD', 'dec2': 1.00, 'dec3': 3.14}]

请记住,我不是要尝试格式化输出/打印数据,而是将数据放置/附加到列表中。

提前致谢。

答案

您必须单独格式化每个字段:

class foo:
    def __init__(self):
        self.datalist = []

    def push_data(self, s1, int2, flt3):
        self.datalist.append({
            "s1": '%s' % s1,
            "int2": '%i' % int2,
            "dec3": '%0.2f' % flt3
        })

    def print_data(self):
        return self.datalist


f = foo()
f.push_data("HelloWorld", 1, 3.1415)
f.print_data()

# [{'dec3': '3.14', 'int2': '1', 's1': 'HelloWorld'}]
另一答案

这可以在格式化每个元素时完成,而不是在所有项目的末尾完成,这是对代码的一个小改动,但它可以工作:

class foo:
    def __init__(self):
        self.datalist = []
    def push_data(self, s1, int2, flt3):
        self.datalist.append({
            "s1": '%s' % s1,
            "int2": '%i' % int2,
            "dec3": '%0.2f' % flt3
        })
    def print_data(self):
        return self.datalist


f = foo()
f.push_data("HelloWorld", 1, 3.1415)
f.print_data()

结果是:

[{'s1':'HelloWorld','int2':'1','dec3':'3.14'}]

另一答案

我相信这就是你想要的。

class foo:
    def __init__(self):
        self.datalist = []

    def push_data(self, s1, int2, flt3):
        self.datalist.append("{"
            "s1: %s,"
            "int2: %i,"
            "dec3: %0.2f}" % (s1, int2, flt3))

    def print_data(self):
        return self.datalist


f = foo()
f.push_data("HelloWorld", 1, 3.1415)
f.print_data()

产生

['{s1:HelloWorld,int2:1,dec3:3.14}']

以上是关于如何在python中附加到列表时格式化字符串和小数的主要内容,如果未能解决你的问题,请参考以下文章

如何在并行进程(python)中将项目附加到列表中?

如何将字符串附加到字典中的列表

Python 和 JSON - 附加到字符串对象

Python:将 a 附加到字典中的列表

如何在 Python Pandas 中使用逗号作为小数分隔符的浮点格式?

如何在python中定义一个全局列表并将本地列表附加到它