Python 如何从字符串转换为列表/数组。?
我有三根弦 a=38186298345 0.93345 27 198 277 389 0.86006 331272933540.89782 类型(a) len(a)显示为22,包括两个数字之间的斜线 要将它们转换为列表吗 需要如下Python 如何从字符串转换为列表/数组。?,python,arrays,string,python-2.7,list,Python,Arrays,String,Python 2.7,List,我有三根弦 a=38186298345 0.93345 27 198 277 389 0.86006 331272933540.89782 类型(a) len(a)显示为22,包括两个数字之间的斜线 要将它们转换为列表吗 需要如下 b=[38186298345 0.93345][27198277389 0.86006][33127293354 0.89782]按换行符和空格将它们分开。使用这个python函数 string_name.split(str="") 更多信息:这就是您的目标: a
b=[38186298345 0.93345][27198277389 0.86006][33127293354 0.89782]按换行符和空格将它们分开。使用这个python函数
string_name.split(str="")
更多信息:这就是您的目标:
a = '''38 186 298 345 0.93345
27 198 277 389 0.86006
33 127 293 354 0.89782'''
b = [line.split() for line in a.split('\n')]
b
#[['38', '186', '298', '345', '0.93345'],
# ['27', '198', '277', '389', '0.86006'],
# ['33', '127', '293', '354', '0.89782']]
这是一个针对您的数据的解决方案 请注意,您的输入不是有效的Python,我已经在下面解决了这个问题
a1 = '38 186 298 345 0.93345'
a2 = '27 198 277 389 0.86006'
a3 = '33 127 293 354 0.89782'
res = [[float(j) if float(j) < 1 else int(j) for j in i.split()] \
for i in [a1, a2, a3]]
# [[38, 186, 298, 345, 0.93345],
# [27, 198, 277, 389, 0.86006],
# [33, 127, 293, 354, 0.89782]]
a1='38186298345 0.93345'
a2='271982773890.86006'
a3='33127293354 0.89782'
res=[[float(j)如果float(j)<1 else int(j)表示i.split()中的j]\
对于[a1、a2、a3]中的i
# [[38, 186, 298, 345, 0.93345],
# [27, 198, 277, 389, 0.86006],
# [33, 127, 293, 354, 0.89782]]
您的输入(a
)和输出(b
)都不是有效的python。现在还不清楚你想要的结果是什么。现在,看起来你在要求一个SyntaxError。另外,您试图将a
转换为b
?请出示您的密码。我试过这个。。它给出了一个错误“列表对象没有属性”split@AjItHHeGdE只有当您的变量a
是一个列表时,才会出现这种情况。是吗?如上所述声明它确实有效。