python中字符串列表转float问题!

刚刚开始学python,被这个卡了一天了,求大佬救命!我想把一个全是字符串的列表里的每一个元素转为float后生成新列表,但是发现可以把列表里的单个元素转换成float,... 刚刚开始学python, 被这个卡了一天了,求大佬救命!我想把一个全是字符串的列表里的每一个元素转为float后生成新列表,但是发现可以把列表里的单个元素转换成float,但如果写成循环,只有转换float并打印出来时可以运行,如果想在循环里转换后append到新列表,就会报错。。。这是为什么啊!!!求大神赐教直接循环输出转为float, 没有问题但是如果循环内要将转换的float赋值给其它变量或者append到新列表中,就会提示不能转换刚开始学让大家见笑了,,求指导! 展开
 我来答
wodesitanfu
2018-05-03 · TA获得超过2235个赞
知道大有可为答主
回答量:1908
采纳率:80%
帮助的人:891万
展开全部
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(一行东西),这是什么鬼?你要转换的是一行里面的每个数字。。所以,问题找到了吧?并没有多少复杂的语法或算法,只是一些逻辑思考过程而已。

GTA小鸡
高粉答主

2018-05-03 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
1.get_Y函数定义是什么
2.文件内容是什么
追问

get_Y是从文件里提取y坐标,就是下面的图里每一行中间的那个数字,组成一个字符串列表;

文件里的内容就是一些点的数据,每一行都是x,y,z,用空格隔开的

追答

改写get_Y函数

def get_Y(filename):
    with load_File(filename) as file:
        L = [float(line.split()[1]) for line in file]
        return L

直接使用X1 = get_Y('22.txt')就可以得到列表。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式