我试图格式化十进制(小数点到小数点),可能还有字符串。同时构建一个列表其中包含字典。我使用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}]
请记住,我不是尝试在ouput/print上格式化数据,但当数据被放置/附加到列表时。
发布于 2018-06-11 16:56:21
必须对每个字段分别设置格式:
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'}]
发布于 2018-06-11 17:19:18
这可以在格式化每个元素时完成,而不是在所有项的末尾,这与你的代码相比是一个很小的更改,但它有效:
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’,‘int 2’:‘1’,‘dec3’:‘3.14’}
https://stackoverflow.com/questions/-100008650
复制相似问题