2013-07-19 52 views
1

我一直在读这页Convert Python list of strings into floats, where list also contains words浮动双列表?

并试图实现这一点,但我不能为双重名单。

我有一个双榜,看起来像这样

Positions = [['ace','first', '10','-29'],['best','second','200','-10']] 

这是我从打开文件得到。我想要做的就是从列表中的第二和第三个索引点中删除这些字符串,以便将这些位置作为整数而不是字符串。有没有办法,我可以打开该文件,以去除熔点这些字符串

是没有办法,我可以通过应用方法我双倍列表中删除的字符串的方式的方式?

回答

0

你有什么是嵌套循环。这几乎是相同的:

>>> L = [['ace','first', '10','-29'],['best','second','200','-10']] 
>>> for i in L: 
...  i[3] = int(float(i[3])) 
...  i[2] = int(float(i[2])) 
...  
... 
>>> print L 
[['ace', 'first', 10, -29], ['best', 'second', 200, -10]] 
+0

您好我已经试过这另一个列表中,但因为有参与SE小数不会在一个点上工作cond的位置,所以它是'10 .30'的例子。有没有办法用小数去除这些? – user2598164

+0

@ user2598164我编辑了我的答案 – TerryA

2

获取列表,其中每个子列表在每个子列表的最后两个位置中Positions代表整型的列表:

[[int(i) for i in L[-2:]] for L in Positions] 

打开的字符串表示在整数到Positionsint S:

[[int(i) for i in L if ((i.startswith('-') and all(char.isdigit() for char in i)) or all(char.isdigit() for char in i) else i] for L in Positions] 
+0

有趣但不同的第一个答案,我看到了。我也会试试这个,看看它是如何发展的。谢谢 – user2598164