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]