将list的整数部分转换为int并保持字符串的原样

2024-10-17 06:13:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表l = ['1','2','3','rt4','rt5']。我想转换int类型的数字,并保持其余的不变

期望输出:

m = [1, 2, 3, 'rt4', 'rt5']

我试着用下面的方法

作战需求文件(m['rt4'])

它给了我以下错误 TypeError:ord()应为字符,但找到长度为3的字符串


Tags: 文件方法字符串类型列表错误数字字符
3条回答
def RepresentsInt(s):
    try: 
        int(s)
        return True
    except ValueError:
        return False
l=['1','2','3','rt4','rt5']
l=[int(l[i]) if RepresentsInt(l[i]) else l[i] for i in range(0,len(l))] 

生成检查int的函数

l=['1','2','3','rt4','rt5']
l=[int(i) if i.isdigit() else i for i in l]  

只是使用isdigit()内置函数

可以使用内置的^{}函数将字符串转换为整数。如果输入字符串不是有效整数,此函数将引发异常,因此在这种情况下,您可以使用^{} statement返回未修改的输入

l = ['1','2','3','rt4','rt5']
def try_to_int(s):
    try:
        return int(s)
    except:
        return s
m = [try_to_int(it) for it in l]
print(m)

int()可能会接受更多的格式作为有效整数,因此也可以显式验证整数

它应该起作用:

l = ['1','2','3','rt4','rt5']
def reformater(din):
    try:
        return int(din)
    except Exception:
        return din
s = [reformater(i) for i in l]

相关问题 更多 >