1

我一直在阅读此页面将 Python 字符串列表转换为浮点数,其中列表还包含单词

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

我有一个看起来像这样的双重列表

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

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

或者

有没有一种方法可以通过将方法应用于我的双重列表来删除字符串?

4

2 回答 2

2

获取列表列表,其中每个子列表的 int 表示在每个子列表的最后两个位置Positions

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

将整数的字符串表示形式Positions转换为ints:

[[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]
于 2013-07-19T13:31:15.053 回答
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]]
于 2013-07-19T13:30:51.070 回答