繁体   English   中英

如何查看每个字符串中的首字母是否大写的列表? (蟒蛇)

[英]How to go through list looking whether first letter in each string is upper case? (Python)

我正在尝试制作一个函数,以便它可以检查列表中每个字符串中的第一个字母是否为大写。

def capital(str_list):
    for n in str_list:
        if n[0].isupper():
            return True
        else:
            return False

如果我有一个列表,它只是检查第一个单词。 如何检查列表中每个单词的首字母是否大写?

[s.istitle() for s in str_list]

要么

[s[0].isupper() for s in str_list]

当您偶然发现一个非大写字母时,立即返回False并且仅在检查了每个元素之后才返回True

def capital(str_list):
    for n in str_list:
        if not n[0].isupper():
            return False 
    return True

您还可以考虑使用all的更紧凑的解决方案:

def capital(str_list): return all(i[0].isupper() for i in str_list)

如果您发现一个单词不是以大写开头,那么您需要返回False ,而不是返回True 完成循环后,只需返回True因为现在您的所有单词都以大写字母开头。

def capital(str_list):
    for n in str_list:
        if not n[0].isupper():
            return False
    return True

更多pythonic方式:

def capital(str_list):
    return all(n[0].isupper() for n in str_list)

您可能会发现python的内置any()all()函数很有用: https : //docs.python.org/3/library/functions.html#all

def capital(str_list):
    return all(n[0].isupper() for n in str_list)

正如我在对您的问题的评论中提到的那样,您的函数仅检查列表中第一个单词的原因是由于return语句,即。 一旦函数执行了它的return语句,函数的执行就结束了。

完成您要完成的任务的另一种方法是通过maplambda函数,可以很容易地对其进行自定义,以防您以后要执行其他操作。

str_list = ['Apple', 'berry', 'Watermelon', 'Bananas']

def capital(str_list):
    return list(map(lambda x: x[0].isupper(), str_list))

capital(str_list)

产量

[True, False, True, True]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM