簡體   English   中英

拆分列表中的元素

[英]split elements in a list

我正在嘗試拆分某些列表中的元素,但我只能獲取每個字符

示例:拆分這些列表

[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']]

我在這里錯過了什么? 謝謝

你為什么不使用類似的東西

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

為什么要使用拆分?

如果您的原始數據是文本文件的行:

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]]

看起來mylists變量是一個字符串,當你說

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

你實際上不是在行上而是在字符上迭代。 嘗試:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM