gpt4 book ai didi

python - Python中的maketrans和replace有什么区别?

转载 作者:行者123 更新时间:2023-12-01 04:51:46 26 4
gpt4 key购买 nike

如果之前有人问过这个问题,我们深表歉意。我正在尝试从字符串中删除标点符号。我知道该怎么做,但我不明白Python中maketrans和replace之间的区别。更具体地说,为什么下面的代码场景 1 会删除传入字符串中的所有标点符号,而场景 2 却不会?

场景1

def average(x):
table = x.maketrans('.,?!:','$$$$$')
x = x.translate(table)
x = x.replace('$', '')
lst1 = x.split()
lst2 = []
for i in lst1:
length = len(i)
lst2.append(len(i))
average = sum(lst2) / len(lst2)

return average

str1 = input("Enter a sentence:")

print('The average amount of chars in that sentence is: ', average(str1))

场景 2

def average(x):
x = x.replace('.,?!:','')
lst1 = x.split()
lst2 = []
for i in lst1:
length = len(i)
lst2.append(len(i))
average = sum(lst2) / len(lst2)

return average

str1 = input("Enter a sentence:")

print('The average amount of chars in that sentence is: ', average(str1))

最佳答案

.replace() 执行子字符串替换 - 它尝试将第一个参数的整体作为一个 block 进行匹配,并将其替换为第二个参数的整体.

.maketrans + .translate 进行字符级翻译 - 它将第一个参数中的每个单独字符替换为第二个。

关于python - Python中的maketrans和replace有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28271515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com