PYTHON:如何同时使用char和int创建列表?

PYTHON:如何同时使用char和int创建列表?,python,Python,我现在有一个文件正在被读取,并把每一行都列成一个列表。该文件如下所示: A 11 1 B 12 2 C 11 2 使用split() 但我如何制作一个同时包含字符和整数的列表,以便得到以下结果: ['A', 11, 1] 如果能得到一些帮助,我将不胜感激 您可以使用str.isdigit检查作为条件表达式条件,以获取要生成ints的数字: [int(i) if i.isdigit() else i for i in line.split()] 例如,'-1'.isdigi

我现在有一个文件正在被读取,并把每一行都列成一个列表。该文件如下所示:

A  11   1
B  12   2
C  11   2
使用
split()

但我如何制作一个同时包含字符和整数的列表,以便得到以下结果:

['A', 11, 1]

如果能得到一些帮助,我将不胜感激

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

[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:


可能有一些奇特的方法,但是您可以使用一些for循环来测试int,如果需要,可以替换。还可以看到:int总是在同一列中吗?啊,谢谢大家的帮助。这真的温暖了我的心,看到了很多建设性的帮助;这是我的第一个stackoverflow问题和第一个python类。非常感谢<代码>'-1'.isdigit()为false
isdigit
不适合“测试字符串是否代表数字”用例,人们一直期望它。@user2357112 True。编辑以包含一些与
re
匹配的字符串,而不是
str.isdigit
i.strip('-')。isdigit()
也可以用于解释负数。
rcomp = re.compile(r'^[+-]?\d+$')
[int(i) if rcomp.search(i) else i for i in str_.split()]
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]