![](/img/trans.png)
[英]Python: Slice list into sublists, every time element begins with specific substring
[英]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-list
, my-list[0]
的第一个和第二个元素从1
到0
,因此counter
递增 +1。 my-list[0]
的第二个和第三个元素是0
和0
,由于值没有改变, counter
的增量不会发生。 但是my-list[0]
的第三个和第四个元素从0
到1
,因此发生了另一个增量。
然后我们在第二个子列表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))
或者如果它们不只包含1s
和0s
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.