Python 如何检查字符串是否可以转换为int,如果可以,请将其添加到列表中
例如,我有一个列表:Python 如何检查字符串是否可以转换为int,如果可以,请将其添加到列表中,python,Python,例如,我有一个列表: l = ["z","u","k","h","r","a","1","2","3"] 如何检查列表中的元素是否可以是int,如果可以,将其转换为int并替换列表中的str,使列表看起来像 l = ["z","u","k","h","r","a",1,2,3] 您可以编写一个简单的函数,尝试将值转换为整数 >>> def try_int(x): ... try: ... return int(x) ... except Va
l = ["z","u","k","h","r","a","1","2","3"]
如何检查列表中的元素是否可以是int,如果可以,将其转换为int并替换列表中的str,使列表看起来像
l = ["z","u","k","h","r","a",1,2,3]
您可以编写一个简单的函数,尝试将值转换为整数
>>> def try_int(x):
... try:
... return int(x)
... except ValueError:
... return x
...
>>> l = ["z","u","k","h","r","a","1","2","3"]
>>> [try_int(x) for x in l]
['z', 'u', 'k', 'h', 'r', 'a', 1, 2, 3]
按照这个原则,我们只是尝试转换值
x
。这比编写复杂的检查代码来确定它是否可以转换容易。您可以编写一个简单的函数来尝试将值转换为整数
>>> def try_int(x):
... try:
... return int(x)
... except ValueError:
... return x
...
>>> l = ["z","u","k","h","r","a","1","2","3"]
>>> [try_int(x) for x in l]
['z', 'u', 'k', 'h', 'r', 'a', 1, 2, 3]
按照这个原则,我们只是尝试转换值
x
。这比编写复杂的检查代码来确定是否可以转换要容易。您可以在转换周围使用try except
块,忽略ValueError
异常:
for i, n in enumerate(l):
try:
l[i] = int(n)
except ValueError:
pass
您可以在转换周围使用
try except
块并忽略ValueError
异常:
for i, n in enumerate(l):
try:
l[i] = int(n)
except ValueError:
pass
请在提问前尝试,如果遇到问题,请在问题中提供答案。如果问题不起作用,请转换问题并处理异常。正在使用列表理解添加答案,但为时已晚<代码>[x if not x.isnumeric(x)else int(x)for x in l]请在提问前尝试,如果遇到问题,请在问题中提供答案,如果问题不起作用,请转换它们并处理异常。正在使用列表理解添加答案,但为时已晚<代码>[x如果不是x.isnumeric(x)else int(x)表示l中的x]我会这样做的。你也可以使用一个经常被忽略的方法,简单地写下:
[int(x)if x.isdecimal()else x for x in l]
@frankfromforklefurt,这不起作用,因为'-1'.isdecimal()
->False
。是的,isdecimal()
只起作用,如果您知道列表元素是字符串,并且整数值是非负的,那么我就会这样做。你也可以使用一个经常被忽略的方法,简单地写下:[int(x)if x.isdecimal()else x for x in l]
@FrankfromFrankfurt,这不起作用,因为'-1'.isdecimal()
->False
。是的,isdecimal()
只起作用,如果你知道列表元素是字符串并且整数值是非负的。