我输入的 csv 文件如下所示
S.没有第一第二第三
1 71.28 75.30 79.78
2 3.45 36.65 25.4
我的目标是从每一行的第一、第二和第三列中提取前两位数字。
我使用列表来存储输出,如下所示。
['71','75','79']
['3.','36','25']
但我想要以下输出(代替“3”。我想要“03”)
['71','75','79']
['03','36','25']
我尽了最大的努力,但未能成功。我不确定我在哪里犯了错误。
我的尝试:例如让a=['1','2','34']
然后我使用 print str(a[0].zfill(2))
输出 01,这是我需要的,
但在主文件的情况下,这是行不通的。
请帮我。
最佳答案
您需要遍历您的字符串列表,然后将它们中的每一个转换为 float
(因为看起来您有一些小数点),然后将它们转换为零填充数字.
data = ['3.','36','25'];
new_data = ['%02d' % float(x) for x in data]
format specifier '%02d',表示您想要一个整数(“d”),如果它少于 2 位数字,则将用零填充(“02”)。
如果您更喜欢格式
方法。
new_data = ['{0:02.0f}'.format(float(x)) for x in data]
此格式说明符意味着您需要一个以零填充的两位数字 ("02"),后跟小数点后的零点 (".0"),并且输入数据类型为 float
(“f”)
NOTE: Both of these solutions assume that you don't care about any non-integer portions of the data (if there are any).
关于python - 在 Python 中的字符前添加零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35817912/