2012-04-25 89 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