如何计算列表列表中数字的字符串数?

时间:2014-11-25 22:15:27

标签: python

list = [['hi0', 'myname23'], ['billy', 'bo3b']]
#should print [2, 1]

我试图找到解决方案,但我认为我应该使用len().isalpha()方法。有什么建议吗?

3 个答案:

答案 0 :(得分:5)

您有一个子问题,即如何确定字符串是否包含任何数字。为此你可以尝试:

>>> s = 'myname23'
>>> any(c.isdigit() for c in s)
True

现在,您要计算列表中此条件为真的元素数量;你可以尝试这样的事情:

>>> l = ['hi0', 'myname23', 'billy', 'bo3b']
>>> sum(1 for s in l if any(c.isdigit() for c in s))
3

答案 1 :(得分:0)

您可以遍历列表并检查每个成员:

total = 0
for member in list:
    if not member.isalpha():
        total += 1

或更简洁

total = sum(not m.isalpha() for m in list)

其他几个笔记;你可能不应该命名任何变量list,因为这与python使用的内置函数和类型冲突。此外,isalpha仅在您可以保证其余字符为字母时才有效,您可以使用if any(char.isdigit() for char in member)

答案 2 :(得分:0)

这是一种非常基本,可读的方式来做你想要的事情:

def count(L):
    answer = 0
    for word in L:
        hasdigit = False
        for char in word:
            if char.isdigit():
                hasdigit = True
        if hasdigit:
            answer += 1
    return answer

输出:

In [40]: count(L)
Out[40]: 3