我有一個清單
flat_list =['53295,-46564.2', '53522.6,-46528.4', '54792.9,-46184', '55258.7,-46512.9', '55429.4,-48356.9', '53714.5,-50762.8']
我怎樣才能把它轉換成
[[53295,-46564.2], [53522.6,-46528.4], [54792.9,-46184], [55258.7,-46512.9], [55429.4,-48356.9], [53714.5,-50762.8]]
我試過了
l = [i.strip("'") for i in flat_list]
沒有任何作用。
l = [i.strip("'") for i in flat_list]
coords = [map(float,i.split(",")) for i in flat_list]
print(coords)
給我 <0x7f7a7715d2b0 處的地圖物件>
uj5u.com熱心網友回復:
為什么要把事情復雜化?
沒有諸如mapand之類的任何內置函式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)
輸出:
[53295.0, -46564.2, 53522.6, -46528.4, 54792.9, -46184.0, 55258.7, -46512.9, 55429.4, -48356.9, 53714.5, -50762.8]
uj5u.com熱心網友回復:
在您發表評論后進行編輯:獲取您可以使用的串列串列
list2 = [[float(f) for f in el.split(",")] for el in flat_list]
或者
list2 = [list(map(float,el.split(","))) for el in flat_list]
已棄用:如果您可以接受 2 個操作而不是單行操作,請使用:
list2 = map(lambda el: el.split(","), flat_list)
list3 = [float(el) for sublist in list2 for el in sublist]
或者
import itertools
list2 = map(lambda el: el.split(","), flat_list)
list3 = list(map(float, itertools.chain.from_iterable(list2)))
uj5u.com熱心網友回復:
我看到坐標成對出現,所以為了首先將它們轉換為整數或浮點數,我們需要將它們拆分,以便它們成為單個數字。
flat_list =['53295,-46564.2', '53522.6,-46528.4', '54792.9,-46184', '55258.7,-46512.9', '55429.4,-48356.9', '53714.5,-50762.8']
coordinates = []
for pair in flat_list:
coordinates.extend(pair.split(','))
result = [float(x) for x in coordinates]
這不是最短的方法,但我認為它可以完成作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/535232.html
