2012-04-25 94 views
0

我有一個相當簡單的問題(我認爲)。列表中的Python列表

我有一個Python列表中的列表,並且元素是字符串。我希望有一個列表,其中包含浮動元素。

例如:

lst= [['0.0375'], ['-0.1652'], ['0.1841'], ['-0.0304'], ['0.0211'], ['0.1580'], ['-0.0252'], ['-0.0080'], ['-0.0915'], ['0.1208']] 

,我需要有類似:

lst= [0.0375, -0.1652, 0.1841, -0.0304, 0.0211, 0.1580, -0.0252, -0.0080, -0.0915, 0.1208] 
+0

是源列表中的固定和恆定的深度,或者是可變的和任意? – 2012-04-25 18:12:52

+2

你說你想要的元素是浮動的,但最終的列表是由字符串組成的。只需使用鏈接爲重複的解決方案調用float就可以正常工作。 – DSM 2012-04-25 18:15:07

+0

源列表是一個固定和不變的深度。 – 2012-04-25 18:15:14

回答

2
[float(x) for (x,) in your_list] 
+0

你確定這個元組嗎?它將包含子列表,所以'float()'將失敗。爲什麼不用'x [0]'而不是? – 2012-04-25 18:28:26

+2

@FrédéricHamidi,我的代碼中沒有元組,即'x,'將解壓縮長度爲1的迭代器,所以'x'是每個子列表中的項目。我使用可迭代的解包而不是索引,因爲它有一個微妙的優點,即產生一個異常,而不是默默地失敗,如果有一天他得到看似無效的輸入'[['3'],['4','5']]' 。 – 2012-04-25 18:33:19

+0

非常好,我不熟悉那種用法。我會記住這一點,謝謝你的解釋:) – 2012-04-25 18:36:31