我在用Python2.7。我想删除列表中每个列表中的非字母字符,而不修改列表的结构。在
起始列表示例:
csvarticles = [['[Beta-blockers]', 'Magic!', '1980', 'Presse medicale'],['Hypertension in the pregnant woman].', '', '2010', 'Medical'],['Arterial hypertension.', '', '1920', 'La Nouvelle']]
print (csvarticles[0])
期望输出:
[['beta blockers', 'magic', '1980', 'presse medicale'],['hypertension in the pregnant woman', '', '2010', 'medical'],['arterial hypertension', '', '1920', 'la nouvelle']]
代码1:
^{pr2}$代码1输出:
['[Beta-blockers]', 'Magic!', '1980', 'Presse medicale'] [['[beta-blockers]'], ['magic!'], ['1980'], ['presse', 'medicale']]
代码2:
csvarticles = [[word.lower().split() for word in nodeList if word.isalpha()] for nodeList in csvarticles]
代码2输出:
[]
代码3:
articleTitle = []
for x, y in enumerate(csvarticles):
myString = simpleWords(csvarticles[x][0])
if myString is not '':
myString = myString.lower()
myString = re.sub('[\W_]+', ' ', myString, flags=re.UNICODE)
myList = [word for word in myString.split() if len(word) > 3]
articleTitle = ' '.join(myList)
代码3输出:
['beta blockers', 'magic', '1980', 'presse medicale', 'hypertension pregnant woman', '2010', 'medical', 'arterial hypertension', '1920', 'nouvelle']
代码3接近,但消除了嵌套列表的结构。在
使用字符串.isalnum()检查字符串是字母表还是数字的方法。在
演示
输出:
^{pr2}$您需要替换非空格或字母数字字符,并修剪/小写字符串。Regex对于那些用
str.strip
链接的替换非常有效。在在双列表组件中重新生成嵌套列表:
印刷品:
^{pr2}$如果使用Python,请将
lower
替换为casefold
,以处理特殊的语言环境字符如果您想在一行代码中执行此操作:
输入:
输出:
^{pr2}$正则表达式:
相关问题 更多 >
编程相关推荐