PYTHON:如何制作包含字符和整数的列表?

时间:2018-02-16 19:58:43

标签: python

我目前有一个正在阅读的文件,并将每一行都列入一个列表。该文件如下所示:

A  11   1
B  12   2
C  11   2

使用split()

制作列表很容易
['A', '11', '1']

但是我如何制作一个包含字符和整数的列表,以便我在下面得到:

['A', 11, 1]

会感激一些帮助!

1 个答案:

答案 0 :(得分:3)

您可以使用str.isdigit检查作为条件表达式条件来获取要生成int的数字:

[int(i) if i.isdigit() else i for i in line.split()]

例如'-1'.isdigit()将返回False,我们可以使用re进行字符串匹配:

rcomp = re.compile(r'^[+-]?\d+$')
[int(i) if rcomp.search(i) else i for i in str_.split()]

e.g:

In [59]: str_ = 'A 2 3'

In [60]: [int(i) if i.isdigit() else i for i in str_.split()]
Out[60]: ['A', 2, 3]

In [61]: str_ = 'A -3 4 -8'

In [62]: [int(i) if rcomp.search(i) else i for i in str_.split()]
Out[62]: ['A', -3, 4, -8]