use*_*920 0 python list arraylist python-3.x
我有一个清单
flat_list =['53295,-46564.2', '53522.6,-46528.4', '54792.9,-46184', '55258.7,-46512.9', '55429.4,-48356.9', '53714.5,-50762.8']
Run Code Online (Sandbox Code Playgroud)
我怎样才能将它转换成
[[53295,-46564.2], [53522.6,-46528.4], [54792.9,-46184], [55258.7,-46512.9], [55429.4,-48356.9], [53714.5,-50762.8]]
Run Code Online (Sandbox Code Playgroud)
我试过
l = [i.strip("'") for i in flat_list]
Run Code Online (Sandbox Code Playgroud)
没有任何效果。
l = [i.strip("'") for i in flat_list]
Run Code Online (Sandbox Code Playgroud)
coords = [map(float,i.split(",")) for i in flat_list]
Run Code Online (Sandbox Code Playgroud)
print(coords)
Run Code Online (Sandbox Code Playgroud)
给我 <map object at 0x7f7a7715d2b0>
为什么要把事情复杂化呢?
如果没有任何内置函数,例如map和itertools,这种具有嵌套list理解的方法应该是一种相对简单且高效的方法。
flat_list = ['53295,-46564.2', '53522.6,-46528.4', '54792.9,-46184', '55258.7,-46512.9', '55429.4,-48356.9',
'53714.5,-50762.8']
result = [float(f) for pair in flat_list for f in pair.split(',')]
print(result)
Run Code Online (Sandbox Code Playgroud)
输出:
[53295.0, -46564.2, 53522.6, -46528.4, 54792.9, -46184.0, 55258.7, -46512.9, 55429.4, -48356.9, 53714.5, -50762.8]
Run Code Online (Sandbox Code Playgroud)
要以list列表结尾,您可以更改语句的顺序,然后在每个结果的子for列表周围添加大括号str.split,如下所示:
[53295.0, -46564.2, 53522.6, -46528.4, 54792.9, -46184.0, 55258.7, -46512.9, 55429.4, -48356.9, 53714.5, -50762.8]
Run Code Online (Sandbox Code Playgroud)
输出:
[[53295.0, -46564.2], [53522.6, -46528.4], [54792.9, -46184.0], [55258.7, -46512.9], [55429.4, -48356.9], [53714.5, -50762.8]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |