鱼C论坛

 找回密码
 立即注册
查看: 503|回复: 8

[已解决]['[55.3, 54.13]', '[48.44, 49.81]']转换成[[55.3, 54.13],[48.44, 49.81]]

[复制链接]
发表于 2019-1-19 22:15:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
数据是这种形式:data = ['[55.3, 54.13]', '[48.44, 49.81]']
想要这种形式:data = [[55.3, 54.13],[48.44, 49.81]]
最佳答案
2019-1-19 22:57:48
data = ['[55.3, 54.13]', '[48.44, 49.81]']
print(data)
data = list(map(eval,data))
print(data)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-19 22:54:16 | 显示全部楼层
  1. def change(data):
  2.     data_new = list()#存放结果
  3.     for each_string in data:
  4.         list1 = each_string[1:-1].split(',')#把字符串去头尾,以“,”分割
  5.         list2 = list()
  6.         for each in list1:
  7.             list2.append(float(each))#把字符串转化为浮点数
  8.         data_new.append(list2)

  9.     return data_new
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-19 22:57:48 | 显示全部楼层    本楼为最佳答案   
data = ['[55.3, 54.13]', '[48.44, 49.81]']
print(data)
data = list(map(eval,data))
print(data)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-19 23:01:17 | 显示全部楼层
yjsx86 发表于 2019-1-19 22:57
data = ['[55.3, 54.13]', '[48.44, 49.81]']
print(data)
data = list(map(eval,data))

大神,小白见教了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-19 23:18:59 | 显示全部楼层

共勉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-19 23:55:51 | 显示全部楼层
yjsx86 发表于 2019-1-19 22:57
data = ['[55.3, 54.13]', '[48.44, 49.81]']
print(data)
data = list(map(eval,data))

学习了!!

前几天在论坛看帖子学习到了eval。刚刚查了一下map用法。

帮大神解说一下,仅供参考~~

data = list(map(eval,data))

list应该不用过多解释,就是将里面的参数生成列表。

map()是个内置函数,据提供的函数对指定序列做映射。第一个参数是一个函数,第二个参数是一个序列返回一个迭代器(Python2中map返回值是列表,map外不需要再用list转为列表)。

eval()也是一个内置函数,是执行字符串表达式,并返回字符串内表达式的执行结果。参数是一个字符串。这个函数最常用到的地方就是读文件的时候去掉字符串外面的引号。


可能有不完全正确的地方,多多交流,共同进步!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-21 08:40:24 | 显示全部楼层

谢谢解答!你也厉害!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-21 08:41:03 | 显示全部楼层
yjsx86 发表于 2019-1-19 22:57
data = ['[55.3, 54.13]', '[48.44, 49.81]']
print(data)
data = list(map(eval,data))

谢谢解答!感受到了python的简洁。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-21 08:41:36 | 显示全部楼层
sunrise085 发表于 2019-1-19 23:55
学习了!!
前几天在论坛看帖子学习到了eval。刚刚查了一下map用法。帮大神解说一下,仅供参考~~data =  ...

感谢科普,第一次接触到eval函数,学习了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-17 18:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表