包含非字母字符的任何字符的字符串数

时间:2020-09-04 12:50:45

标签: python list

我花了几周的时间正确学习python,无法找到一种方法从我现有的知识中继续学习。问题是:

使用累加器模式编写一个函数count_messy(strings),该函数将字符串列表作为参数,并返回一个int,该int表示包含非字母字符的任何字符的字符串数。字符串方法isalpha在这里会很有用。

这是我当前的代码:

def count_messy(strings):
    for string in strings:
        ans = strings.isalpha(string)
        
    return(len(ans))

print(count_messy(["x", "y2y", "zz%z"]))

应输出:

2

最好将for循环用于累加器模式,并且不理解任何列表理解。

1 个答案:

答案 0 :(得分:1)

为了结束此事...

正确的解决方法是:

def count_messy(strings):
    count = 0
    for string in strings:
        if not string.isalpha():
            count += 1
    return count

包含原始代码和其他几种解决方案的尝试:

  • isalpha是字符串string的方法,而不是列表strings的方法。
  • 必须使用
  • not string.isalpha()来计算不是 仅由字母字符组成的字符串。
  • count整数变量需要初始化为0,并为满足此条件的每个字符串递增。