如何在Python中删除字符串中的小写单词
我刚开始学习Python,遇到了一些简单的问题。
我有一个数组(在Python中也叫列表),它长这样:
list = [ 'NICE dog' , 'blue FLOWER' , 'GOOD cat' , 'YELLOW caw']
你可以看到,这个数组里的每个元素都包含一些单词。这些单词有小写字母也有大写字母。
我想知道怎么才能从这个数组中删除所有的小写字母单词?
比如,我希望最后得到的列表是这样的:
list = [ 'NICE' , 'FLOWER' , 'GOOD' , 'YELLOW']
6 个回答
2
string.translate()
方法可以快速删除指定的字符:
>>> import string
>>> mylist=['NICE dog', 'blue FLOWER', 'GOOD cat', 'YELLOW caw']
>>> print [s.translate(None, string.ascii_lowercase) for s in mylist]
['NICE', 'FLOWER', 'GOOD', 'YELLOW']
3
下面的代码可以实现这个功能:
def remove_lower(s):
return ' '.join(w for w in s.split(' ') if not w.islower())
l = [ 'NICE dog' , 'blue FLOWER' , 'GOOD cat' , 'YELLOW caw']
l = map(remove_lower, l)
9
l = [ 'NICE dog' , 'blue FLOWER' , 'GOOD cat' , 'YELLOW caw']
output = [' '.join(w for w in a.split() if w.isupper()) for a in l]
# or:
output = [' '.join(filter(str.isupper, a.split())) for a in l]
返回:
['NICE', 'FLOWER', 'GOOD', 'YELLOW']
(不要把 list
当作变量名使用。)