拆分lis中的元素

2024-04-25 19:28:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一些列表中分割元素,但我只能得到每个字符

示例: 把名单分开

[999.7382621, -1.4637250000000002]
[-1.5490111999999998, 1.5490111999999998]

使用此代码

elements = [map(str, line.split(",")) for line in mylists]

我得到这个结果:

[['9'], ['9'], ['9'], ['.'], ['7'], ['3'], ['8'], ['2'], ['6'], ['2'], ['1'],['', ''], ['-'], ['1'], ['.'], ['4'], ['6'], ['3'], ['7'], ['2'], ['5']]
[['-'], ['1'], ['.'], ['5'], ['4'], ['9'], ['0'], ['1'], ['1'], ['2'], ['', ''], ['1'], ['.'], ['5'], ['4'], ['9'], ['0'], ['1'], ['1'], ['2']]

我想买一个

[['999.7382621'],['-1.4637250000000002']]
[['-1.5490111999999998'],['1.5490111999999998']]

我错过了什么?谢谢


Tags: 代码in元素示例map列表forline
3条回答

你为什么不用这样的东西

>>> a = [999.7382621, -1.4637250000000002]
>>> map(lambda x: [str(x)], a)
[['999.7382621'], ['-1.463725']]
>>> 

为什么要使用split?你知道吗

看起来mylists变量是一个字符串

elements = [map(str, line.split(",")) for line in mylists]

你实际上不是在行上而是在字符上迭代。尝试:

elements = [map(str, line.split(",")) for line in mylists.strip('\n').split('\n')]

如果原始数据是文本文件的行:

In [135]: line = '[999.7382621, -1.4637250000000002]'

In [136]: import ast

In [137]: ast.literal_eval(line)
Out[137]: [999.7382621, -1.4637250000000002]

In [138]: [[x] for x in ast.literal_eval(line)]
Out[138]: [[999.7382621], [-1.4637250000000002]]

相关问题 更多 >