问题:
编写一个函数
tag_count
,将其作为参数的列表 字符串。它应返回这些字符串中有多少是XML的计数 标签。如果字符串以左侧开头,则可以判断该字符串是否为XML标记 角括号"<"并以直角括号结束">"。
def tag_count(令牌): count = 0 令牌中的令牌: 如果令牌[0] =='<'和令牌[-1] =='>': count + = 1 返回计数 list1 = ['',' Hello World!',''] count = tag_count(list1) 打印("预期结果:2,实际结果:{}" .format(count))
我的结果始终为0
。我做错了什么?
答案 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'.