【问题标题】:Python - Removing all punctuation from string and only printing words containing an "i" and are equal to or longer than five charactersPython - 从字符串中删除所有标点符号,仅打印包含“i”且等于或长于五个字符的单词
【发布时间】:2018-09-25 03:42:46
【问题描述】:
testText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque nec mauris nec tellus mollis ullamcorper. Vestibulum sit amet arcu placerat, sagittis quam sed, rutrum sem. Morbi vulputate odio non lacus."
splitText = testText.split(" ")
print(splitText)
cleanedText = ''
for letter in testText:
    if letter in list('.,:;?!'):
        cleanedText.append(letter)
''.join(cleanedText)

我正在尝试删除上面段落中的所有标点符号,但我遇到了“属性错误:'str' 对象没有属性'append'”。

可能会出现什么问题,我应该如何解决?

此外,我将如何只打印等于或长于五个字符并包含“i”的世界?

【问题讨论】:

  • cleanedText 是一个str,而不是一个列表(那么他没有append)

标签: python join split append


【解决方案1】:

删除一个简单的技巧是用一个空的 str 替换它(replace)。对于第二部分,我们查看两个条件:i 在单词中并且长度等于或大于 5。请注意,我们正在查看大写的 I

testText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque nec mauris nec tellus mollis ullamcorper. Vestibulum sit amet arcu placerat, sagittis quam sed, rutrum sem. Morbi vulputate odio non lacus."
str_to_remove = list('.,:;?!')

for letter in str_to_remove:
    testText = testText.replace(letter, '')

for word in testText.split(' '):
    if 'i' in word and len(word) >= 5:
        print(word)

【讨论】:

  • 那成功了!
【解决方案2】:

试试这个:

for letter in testText:
    if letter not in list('.,:;?!\''):
        cleanText += letter
print(cleanText)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 2017-03-28
    • 2019-11-20
    • 2018-07-22
    相关资源
    最近更新 更多