Python 如何将一个数字乘以我列表中用科学符号表示的每个元素?

Python 如何将一个数字乘以我列表中用科学符号表示的每个元素?,python,Python,我有一个data.txt作为: 1.30000E+01 7.49106E+01 1.40000E+01 7.24673E+01 我想把第一列乘以2。这是我的密码: with open("data.txt") as f: data = f.readlines() xtemp = [row.split()[0] for row in data] y = [row.split()[1] for row in data] x = [i * 2 for i in xtemp] 错误信息是 eEr

我有一个data.txt作为:

1.30000E+01 7.49106E+01

1.40000E+01 7.24673E+01

我想把第一列乘以2。这是我的密码:

with open("data.txt") as f:
data = f.readlines()

xtemp = [row.split()[0] for row in data]
y = [row.split()[1] for row in data]
x = [i * 2 for i in xtemp]
错误信息是


eError:float的文本无效:1.30000E+011.30000E+01

从文件读取的数据类型为字符串。您需要转换为浮点以进行乘法:

x = [float(i) * 2 for i in xtemp]

至少有一个输入行没有空格分隔数字。@user2357112不正确。它正在打印两次,因为当您将一个字符串乘以2时,它会将其连接到自身。请在之后正确缩进代码with@SamCraig:仔细想想,是的,这段代码没有显示float调用。这似乎发生在*2之后。这非常有效!多谢各位@我很高兴能帮上忙!
import io

filedata = """1.30000E+01 7.49106E+01
1.40000E+01 7.24673E+01"""

data = [i.strip("\n") for i in io.StringIO(filedata).readlines()]

xtemp = [row.split()[0] for row in data]
y = [row.split()[1] for row in data]
xtype = [type(i) for i in xtemp] # [str,str] <-- here is your problem
x = [float(i) * 2 for i in xtemp]


x
[26.0, 28.0]