如果这个问题之前问过了,我向你道歉。我正在尝试从字符串中删除标点符号。我知道如何做到这一点,但是我不理解Python中maketrans和replace之间的区别。更具体地说,为什么下面的第一种代码情况会从传入的字符串中删除所有标点符号,而第二种情况则不会呢?
代码情况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))