2013-07-19 90 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