如何在Python中删除字符串中的小写单词

3 投票
6 回答
4747 浏览
提问于 2025-04-17 07:23

我刚开始学习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 当作变量名使用。)

撰写回答