使用Python从使用嵌套for循环的列表中计算T

2024-06-06 21:25:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图计算T的数量,不管所提供的列表中的大小写是什么,但是代码一直在计算每个字符并返回46的值,而不是仅仅计算T并返回6的值。我还需要它来打印出现T的字符串。你知道吗

givenStrings = ["Taylor Swift", "Twenty Two", "Georgia Tech"]

count  =0
numTs = 0

for currentString in givenStrings:

    for currentCharacter in currentString:

        if currentCharacter == 't' or 'T':
            numTs+=1
            count = numTs + len(currentString)
            print(count, currentString)

Tags: 字符串代码in列表for数量count字符
3条回答

将if条件更改为

if currentCharacter == 't' or currentCharacter =='T':

您的if条件应改为:

if currentCharacter in ['t','T']:

最好不要迭代字符,而是将sumlen以及字符串方法lowercount一起使用:

count = sum(len(currentString) for currentString in givenStrings)
numTs = sum(currentString.lower().count('t') for currentString in givenStrings)

sum函数可以接受任何iterable。总而言之。你知道吗

第一种方法将len应用于列表中的每个项目。它sum消耗产生一个总数。你知道吗

第二种方法使用lower方法将每个字符串转换为小写,然后调用count方法来获取字符串't'的出现次数。它sum消耗产生一个总数。你知道吗

在每种用法中,参数都是一个生成器表达式(a for b in c)当它是函数的唯一参数时,可以省略括号。sum(a for b in c)sum((a for b in c))相同。当它不是唯一的参数时,括号是必需的。你知道吗

还有其他内置函数也采用iterables,最显著的是minmaxanyall。请注意,minmax采用关键字参数key,以便max((a for a in b), key=len)返回iterable中最长的项。heapq.nsmallestheapq.nlargest函数实际上是minmax函数的自然扩展。我喜欢anyall,尤其是和not结合在一起的时候。你知道吗

相关问题 更多 >