程序补充题:输入一个英文句子,输出每个词的字母个数

例如:
输入:Hello Python world!
输出:5 6 5

import string
words = input()
# 去除所有标点符号
....
# 英语句子分词
________
f = lambda x: len(x)
for i in __________:
    print(f(i),_______)


请求补充第四行处省略号以及横线处的代码

import string

words = input()
# 去除所有标点符号
import re
punctuation = '!,;:?"\'、,;'
words = re.sub(r'[{}]+'.format(punctuation),' ',words).strip()
# 英语句子分词
lst = words.split()
f = lambda x: len(x)
for i in lst:
    print(f(i), end=' ')

import string

words = input()
# 去除所有标点符号
punct = str.maketrans({key: "" for key in string.punctuation})
string_c = words.translate(punct)

# 英语句子分词
l = []
for i in string_c.split(' '):
    l.append(i)
f = lambda x: len(x)
for i in l:
    print(f(i), end=' ')


import string

words = input()
# ....
# 英语句子分词
lst = words.replace('!', '').split()
f = lambda x: len(x)
for i in lst:
    print(f(i), end=' ')