以下是迄今为止我掌握的代码:
dex = tree.xpath('//div[@class="cd-timeline-topic"]/text()')
names = filter(lambda n: n.strip(), dex)
table = str.maketrans(dict.fromkeys('?:,'))
for index, name in enumerate(dex, start = 0):
print('{}.{}'.format(index, name.strip().translate(table)))
问题是,输出还将打印带有一个特殊字符“My name is/Richard”的字符串。所以我需要的是用空格替换这个特殊字符,最后打印输出的是“我的名字是理查德”。有人能帮我吗?你知道吗
谢谢!你知道吗
您可以通过扩展转换表来实现这一点:
输出
您想用
None
替换大多数特殊字符,但用空格替换正斜杠。您可以像这里的其他答案一样使用不同的方法替换正斜杠,或者可以像上面那样扩展翻译表,将所有其他特殊字符映射到None
,并将正斜杠映射到空格。有了这个,你可以有一大堆不同的替代品发生在不同的字符。你知道吗对
dict.fromkeys()
的调用在其参数中不包含字符/
。你知道吗如果要将所有特殊字符映射到
None
,只需将特殊字符列表传递到dict.fromkeys()
就足够了。如果您想用一个空格来替换它们,那么您可以遍历dict并为每个键将值设置为。你知道吗
例如:
或者,可以按以下方式使用
re.sub
函数:参数
re.sub
的含义如下:第一个是模式-它通知re.sub
要替换哪个子串,?
需要转义,否则它在那里有特殊的含义,|
意味着:或者,因此re.sub
将查找?
或:
或,
或/
。第二个参数是返回要用来代替原始子字符串的字符的函数:空格表示/
,空str
表示其他任何字符。第三个参数是要更改的字符串。你知道吗相关问题 更多 >
编程相关推荐