繁体   English   中英

每次在子列表列表中切换数字时计数 [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]的第一个和第二个元素从10 ,因此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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM