如何计算python列表中的XML字符串元素?

时间:2017-07-29 02:57:00

标签: python python-3.x

问题:

  

编写一个函数tag_count,将其作为参数的列表   字符串。它应返回这些字符串中有多少是XML的计数   标签。如果字符串以左侧开头,则可以判断该字符串是否为XML标记   角括号"<"并以直角括号结束">"。

def tag_count(令牌):     count = 0     令牌中的令牌:         如果令牌[0] =='<'和令牌[-1] =='>':             count + = 1     返回计数     list1 = ['',' Hello World!','']     count = tag_count(list1)     打印("预期结果:2,实际结果:{}" .format(count))

我的结果始终为0。我做错了什么?

2 个答案:

答案 0 :(得分:2)

首先,由于您在循环中重新定义count变量,因此您不计算任何内容。此外,您实际上缺少XML字符串检查(以<开头,以>结尾)。

修正版:

def tag_count(list_strings):
    count = 0
    for item in list_strings:
        if item.startswith("<") and item.endswith(">"):
            count += 1
    return count

然后,您可以使用内置的sum()函数进行改进:

def tag_count(list_strings):
    return sum(1 for item in list_strings
               if item.startswith("<") and item.endswith(">"))

答案 1 :(得分:0)

    def tag_count(xml_count):
        count = 0
        for xml in xml_count:
            if xml[0] == '<' and xml[-1] == '>':
                count += 1
        return count


# This is by using positional arguments
# in python. You first check the zeroth
# element, if it's a '<' and then the last
# element, if it's a '>'. If True, then increment 
# variable 'count'.