检查字母数字单词并输出相同

Tia*_*Tia 3 python

尝试将字母数字部分与字符串Eg分开:如果传递的输入为

    BMW X5
Run Code Online (Sandbox Code Playgroud)

我将得到的输出看起来像

    X5  
Run Code Online (Sandbox Code Playgroud)

使用内置函数.isalnum()将字母数字与其他单词分开,但输出仍然显示错误。的

    name= 'BMW X5'
    if name.isalnum():
        model = list(filter(lambda x: x.isalnum(), name.strip().split()))
    else:
        model = name
Run Code Online (Sandbox Code Playgroud)

预期输出X5,但是这段代码的输出是'BMW X5'

Chr*_*ris 5

添加not str.isalpha

name= 'BMW X5'
if name.replace(' ', '').isalnum():
    model = ' '.join(i for i in name.split() if i.isalnum() and not i.isalpha())
else:
    model = name
print(model)
Run Code Online (Sandbox Code Playgroud)

输出:

'X5'
Run Code Online (Sandbox Code Playgroud)

问题是如果纯粹按字母顺序str.isalnum返回:Truestr

'AAA'.isalnum()
# True
Run Code Online (Sandbox Code Playgroud)

因此,删除纯字母字母的单词str.isalpha == True就可以了。