标点符号拆分列表

2024-06-16 16:52:29 发布

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

我有一个特定的头衔

我想开始拆分一个列表的空格和标点符号,这样得到的列表中就没有单词包含任何空格或标点符号了。你知道吗

例:“乔的”这个词可以分为“乔”和“s” “ad-sf”分为“ad”和“sf”

开始时间:

['Toms', 'ad  sf', "Joe's"]

Ending:
    ['Toms', 'ad', 'sf' , 'Joe', 's']

我试过regex,split,但是没有一个简单简洁的方法。有人能想出更好的办法吗?你知道吗


Tags: 方法列表ending时间sf单词adregex
3条回答

拆分每个项目并连接各个部分:

from itertools import chain
mylist = ['Toms', 'ad  sf', "Joe's"]
list(chain(*[re.split("\W+", item) for item in mylist]))
#['Toms', 'ad', 'sf', 'Joe', 's']

以下是一个“干净”的功能解决方案:

list(chain(*map(lambda item: re.split("\W+", item), mylist)))
#['Toms', 'ad', 'sf', 'Joe', 's']

没有内在的方法来实现你想要的,但是这里是我能想到的使用map的最简洁的方法。你知道吗

import re

words = ['Toms', 'ad  sf', "Joe's"]

sum(map(re.compile(r'\W+').split, words), [])

# Output: ['Toms', 'ad', 'sf', 'Joe', 's']

您可以使用re.split

import re
s = ['Toms', 'ad  sf', "Joe's"]
final_result = [j for i in s for j in re.split(r'\W+', i)]

输出:

['Toms', 'ad', 'sf', 'Joe', 's']

相关问题 更多 >