【发布时间】:2021-05-18 13:17:18
【问题描述】:
'''def tokenize(s):
string = s.lower().split()
getVals = list([val for val in s if val.isalnum()])
result = "".join(getVals)
print (result)'''
tokenize('AKKK@eastern B!@#est!')
我正在尝试 ('akkkeastern', 'best') 的输出
但我对上述代码的输出是 - AKKKeasternBest 我应该做出哪些改变
【问题讨论】:
-
将
getVals中的s替换为string并使用两个列表推导(因为字符串是字符串列表)。使用:[''.join([val for val in word if val.isalnum()]) for word in string]。 (这也包括"".join(getVals))。 -
谢谢你.. 你能更具体地了解一下这两个列表理解部分吗?
-
作为答案,它可能更容易阅读,但您要做的是首先遍历来自
s.lower().split()的所有组,(即["akkk@eastern", "b!@#est!"],其中"akkk@eastern"是第一个单词等...) 使用for word in string。然后在内部检查每个字符是否为字母数字 ([val for val in word if val.isalnum()])。最后一部分''.join([...])与您的行result = "".join(getVals)相同,但现在对每个单词执行。
标签: python-3.x list split alphanumeric