Python 将字符串列表转换为int列表

Python 将字符串列表转换为int列表,python,python-3.x,string,list,Python,Python 3.x,String,List,我从逗号分隔的文本文件(原始格式alpha_字符,空格1,2,3,4,5,6,7,空格alpha_字符换行字符)中读取数据,并输出[[1,2,3,4,5,6,7'],['7,5,3,9,8,2,4']等](即一个字符串的列表),并希望将其转换为[[1,2,3,4,5,6,7],[7,5,3,9,8,4]等的列表(即int)。因此,对于如何将文本文件中的数据读入int列表或如何将我拥有的字符串列表转换为int列表,我将不胜感激。我知道,我在这里非常愚蠢。使用列表理解: >>> w

我从逗号分隔的文本文件(原始格式alpha_字符,空格1,2,3,4,5,6,7,空格alpha_字符换行字符)中读取数据,并输出
[[1,2,3,4,5,6,7'],['7,5,3,9,8,2,4']等]
(即一个字符串的列表),并希望将其转换为
[[1,2,3,4,5,6,7],[7,5,3,9,8,4]等
的列表(即int)。因此,对于如何将文本文件中的数据读入int列表或如何将我拥有的字符串列表转换为int列表,我将不胜感激。我知道,我在这里非常愚蠢。

使用列表理解:

>>> with open('file.txt') as f:
...     rows = [line.strip().split(',') for line in f]
...
>>> rows
[['1', '2', '3', '4', '5', '6', '7'], ['7', '5', '3', '9', '8', '2', '4']]
>>> nums = [list(map(int, row)) for row in rows]
>>> nums
[[1, 2, 3, 4, 5, 6, 7], [7, 5, 3, 9, 8, 2, 4]]

您还可以使用:


使用列表理解:

>>> with open('file.txt') as f:
...     rows = [line.strip().split(',') for line in f]
...
>>> rows
[['1', '2', '3', '4', '5', '6', '7'], ['7', '5', '3', '9', '8', '2', '4']]
>>> nums = [list(map(int, row)) for row in rows]
>>> nums
[[1, 2, 3, 4, 5, 6, 7], [7, 5, 3, 9, 8, 2, 4]]

您还可以使用:


要过滤数字并转换输出,可以执行以下操作:

new_list = [ [ int(x) for x in convert_list.split(",") if x.isdigit() ] for sublist in oldlist for convert_list in sublist ]
如果您想知道您的输入是否不是数字,可以省略
.isdigit()
,然后使用try except:

try:
    [ [ int(x) for x in convert_list.split(",") ] for sublist in oldlist for convert_list in sublist ]
except ValueError:
    print("bad input")

要过滤数字并转换输出,可以执行以下操作:

new_list = [ [ int(x) for x in convert_list.split(",") if x.isdigit() ] for sublist in oldlist for convert_list in sublist ]
如果您想知道您的输入是否不是数字,可以省略
.isdigit()
,然后使用try except:

try:
    [ [ int(x) for x in convert_list.split(",") ] for sublist in oldlist for convert_list in sublist ]
except ValueError:
    print("bad input")

如果它真的是一个逗号分隔的文件,你能跳过手动内容并使用它吗?如果它真的是一个逗号分隔的文件,你能跳过手动内容并使用它吗?谢谢。我本想按你说的做很多事,但做得不对。现在,我得到了int base10的无效文本,因此我需要再次查看我所做的工作。非常好的回答谢谢。我本想按你说的做很多事,但做得不对。现在,我得到了int base10的无效文本,因此我需要再次查看我所做的工作。回答得很好