从列表中删除所有非字母字符

时间:2016-02-17 00:15:08

标签: python

我正在构建一个非常简单的翻译程序,它使用wordreference.com来查找单词的含义。

我不擅长Python(3.4),但我能够做到这一点 (另外,我知道n = n + 1的东西我目前还没有工作,我这样做是为了测试其他东西!)

import webbrowser
import sys
trans = True
print('What language will you be translating FROM?')
lang = input()
n = 1
print('Ok, ' + lang + ', what word would you like to translate from ' + (lang) + ' to English?')
while trans == True:
    if n > 99:
        print('Another one: ')
    word = input()
    word = (word.lower())
    list = word.split()
    if lang == 'French':
        lang = 'fren'
    if lang == 'french':
        lang = 'fren'
    for word in list:    
        webbrowser.open('http://www.wordreference.com/' + (lang) + '/' + (str(word)))
        n = n + 1

我的问题是,如何从列表中删除逗号和感叹号等内容,但不会删除 我的测试句是' Je vais bien,merci!',我希望它打开大量的标签作为单词,(它确实如此),而不是它

Je vais bien, merci!

我想要它     Je vais bien merci

我知道如何使用

word.isalpha()

但这只能使它如果单词不是按字母顺序排列的话我根本不能使用该程序。 谢谢你!

1 个答案:

答案 0 :(得分:4)

这将删除除撇号和空格之外的非字母字符。

>>> s = "Je vais bien, merci!"
>>> "".join(c for c in s if c.isalpha() or c in " '")
'Je vais bien merci'

希望它有所帮助!