python中字符串列表转float问题!
刚刚开始学python,被这个卡了一天了,求大佬救命!我想把一个全是字符串的列表里的每一个元素转为float后生成新列表,但是发现可以把列表里的单个元素转换成float,...
刚刚开始学python, 被这个卡了一天了,求大佬救命!我想把一个全是字符串的列表里的每一个元素转为float后生成新列表,但是发现可以把列表里的单个元素转换成float,但如果写成循环,只有转换float并打印出来时可以运行,如果想在循环里转换后append到新列表,就会报错。。。这是为什么啊!!!求大神赐教直接循环输出转为float, 没有问题但是如果循环内要将转换的float赋值给其它变量或者append到新列表中,就会提示不能转换刚开始学让大家见笑了,,求指导!
展开
展开全部
file_path = 路径\22.txt
with open(file_path) as fr:
b = list(map(lambda i:list(map(lambda j:float(j),i.split())),fr.readlines()) #一行的分割符号这里默认是空格
return b
学习的时候,切记冲动,冷静后,仔细观察,然后依靠现有知识做思考是最重要技能。。显然目前你还需要朝这方面努力
报错,报的是什么错?
x1既然是列表,比如有append方法,这也是必然正确的。那么既然这一步没错的话,那么看下一步
float(x)
报错应该是在这里
为啥float(x)就错了,打印就没错?
那你思考过没有,打印做了什么?为什么不报错?打印不报错的原因是因为它正确执行了,那他执行了什么?对,只是正确的执行了,你要他打印到输出到屏幕的内容而已。所以它就没报错
那么为啥float就错了呢?首先思考,float是做什么的?将符合条件的对象,转换成浮点数。
所以,如果float报错,那看看,你让它转换的对象是啥对象?
这个对象是从文件中过来的,打印出来的时候,是一行行的,所以,float的时候,也是一行行的。。问题是,float(一行东西),这是什么鬼?你要转换的是一行里面的每个数字。。所以,问题找到了吧?并没有多少复杂的语法或算法,只是一些逻辑思考过程而已。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询