将每个字母与下一个字母进行比较

时间:2019-04-15 17:16:06

标签: python

我正在尝试将列表中的每个字母与下一个字母进行比较,如果相减小于1,我希望将要打印的数字进行比较。

lis=[2,3,5,6,7,8,0,4,2,5,6,8,9,4,2,]
for number in lis:
    if lis[number+1]-lis[number]==1:
        print (number)

输出为

2
3
0
4
2
9
4
2

代码完全跳过了5,6,7 但是打印出的数字实际上并不适合该语句。 谁能解释一下? 预先感谢

2 个答案:

答案 0 :(得分:3)

您正在使列表的索引混淆。

例如,列表的第一个元素的索引为0但值为2。下一个元素的索引为1但值为3。下一个元素的索引为2但值为5。当您使用str_match(x, "gene_biotype\\s+\"([^\"]+)\"")[,2] # [1] "protein_coding" "IG_V_gene" "protein_coding" 时,结果为a值。

使用lis[index]时,它将遍历值,而不是索引。

这是做我想做的事情的一种方法:

for number in lis

答案 1 :(得分:1)

您还可以使用切片和zip通过一对连续的元素遍历列表:

lis = [2,3,5,6,7,8,0,4,2,5,6,8,9,4,2,]

for n, m in zip(lis, lis[1:]):
    if m - n == 1:
        print(n)