【发布时间】:2017-03-14 01:53:15
【问题描述】:
我正在编写一个函数来计算列表列表中特定值的出现次数连续水平或垂直。然后它只需要返回它发生了多少次的值。这是一个例子
lst=[['.','.','.','e'],
['A','A','.','e'],
['.','.','.','e'],
['.','X','X','X'],
['.','.','.','.'],
['.','.','.','e']]
对于这个列表列表,函数应该为 e 返回 3,因为它连续出现 3 次,为 A 为 2,为 X 为 3。谢谢您的时间
到目前为止我的代码:
def length_of_row(symbol,lot):
count = 0
for sublist in lot:
for x in sublist:
if x == symbol:
count += 1
continue
else:
continue
return count
【问题讨论】:
-
您在代码中的哪个位置测试符号是否相同?
-
我认为你不明白
continue做了什么。在这里无法联系到return count。 -
您的代码甚至不检查数组中的元素是否是传递给函数的符号。它所做的只是计算真实值的数量。
-
return count的缩进几乎肯定是错误的,它可能意味着在循环之外。 -
@Barmar 特定列表(如我上面包含的“lst”)被输入到函数中,然后它测试“符号”(可以是任何字符)连续出现的次数是否垂直或水平。对于那个特定的,它测试 A 并应返回 2 并测试 C 应返回 0,因为该列表列表中没有 C
标签: python list python-3.x count symbols