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()
只起作用,如果你知道列表元素是字符串并且整数值是非负的。