首页 > 解决方案 > 如何在 Python 中转换 `str.split()` 的元素?

问题描述

我有以下内容:

[line.split(' ') for line in [
        line.rstrip() for line in file.readlines()]]

它返回字符串列表的列表。我知道我可以执行以下操作将其转换为整数列表:

    for row in tree:
        row[:] = map(int, row[:])

可以在处理行时内联完成吗?

一些样本数据:

59
73 41
52 40 09
26 53 06 34
10 51 87 86 81

标签: python

解决方案


你可以使用

data = """
59
73 41
52 40 09
26 53 06 34
10 51 87 86 81
"""

result = [[int(x) for x in line.split()] for line in data.split("\n") if line]
print(result)

哪个产量

[[59], [73, 41], [52, 40, 9], [26, 53, 6, 34], [10, 51, 87, 86, 81]]

请注意,这仅在您只有整数时才有效。
要进行一些错误管理,您可以使用:

data = """
59 some junk here
73 41
52 40 09
26 53 06 34
10 51 87 86 81
"""

def makeint(line):
    for x in line.split():
        try:
            yield int(x)
        except ValueError:
            pass

result = [[x for x in makeint(line)] for line in data.split("\n") if line]
print(result)

推荐阅读