如何比较列表中连续整数的最后数字

时间:2017-06-25 19:50:02

标签: python digit

在我制作的程序中,我需要评估列表中每个整数的最后一位数,并将其与下两个整数的最后一位数进行比较。我使用的代码用于2个整数,但是当我尝试添加另一个整数时,它没有用。两个整数的代码是

from collections import Counter
ctr = Counter((n0%10,n1%10) for n0,n1 in zip(my_list,my_list[1:]))

我为三个整数尝试的代码是

from collections import Counter
ctr2 = Counter((n0%10,n1%10,n2%10) for n0,n1,n2 in zip(my_list,my_list,my_list[1:]))

ctr2总是输出0。我确定这是一个简单的解决方案,我只是不知道自己做错了什么。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

你应该将每个列表进一步切片,例如:

  <ion-card>
      ...
    <div style="width: 100%; padding: 26px; text-align:right;">
      <button ion-button>Button</button>
    </div>
  </ion-card>

所以Counter((n0%10,n1%10,n2%10) for n0,n1,n2 in zip(my_list,my_list[1:],my_list[2:]))中的第一个列表根本没有切片(从索引0开始),第二个列表在索引1(zip(..)),第三个在索引2([1:]并且如果你想要更多的列表,每个列表应该从下一个索引开始。

通过使用比较任意数量的函数,可以使它更优雅。像:

[2:]

对于from itertools import islice from collections import Counter def count_last_digits(data,n=2): slices = [islice(data,i,None) for i in range(n)] return Counter(tuple(x%10 for x in t) for t in zip(*slices)) ,这将考虑每两个连续的数字。对于n=2,这将考虑每三个连续的数字,依此类推。

例如:

n=3