每次子列表列表中的数字切换时计数 [python 3]

count every time a number switches in a list of sublists [python 3]

如果我有一个看起来像这样的列表

my-list = [[1, 0, 0, 1], [1, 0]]

如果我想在每次元素更改值时进行计数。例如,如果我们定义一个名为 counter

的变量
counter = 0

并且每次子列表的每个元素变为不同的东西(从 1-->0 或 0-->1)时,counter 递增。

如果我们从上方查看 my-listmy-list[0] 的第一个和第二个元素从 1 变为 0,因此 counter 递增 + 1. my-list[0] 的第二个和第三个元素是 00,由于值没有改变,所以 counter 的增量不会发生。但是 my-list[0] 的第三个和第四个元素从​​ 01,所以又发生了一次递增。

然后我们在第二个子列表 my-list[1] 中重新开始。 my-list[1] 的第一个和第二个值不同(从 1 变为 0),因此 counter 第三次递增。如果我们看最后的结果,

print(counter)
>>> 3

3,就是我要找的答案my-list

谢谢!

可以考虑差的绝对值

sum(abs(l[i]-l[i+1]) for l in my_list for i in range(len(l)-1))

或者如果它们不仅仅包含 1s0s

sum(1 if l[i] != l[i+1] else 0  for l in my_list for i in range(len(l)-1))