比较python中列表的元素

时间:2017-09-09 03:14:23

标签: python loops comparison iteration elements

我想迭代一个列表,想要比较列表的元素。例如:第一个元素将与下一个元素进行比较。我有一个清单a:

for i in range(len(a))
    for i+1 in range(len(a)) #check code
        if a[i] == a[i+1]
           a.pop(i+1)

有人可以建议如何在python中执行此操作吗?

3 个答案:

答案 0 :(得分:0)

second 元素开始,将每个元素与其前一个元素进行比较。

for ix in range(1, len(a)):
    compare_items(a[ix], a[ix - 1])

答案 1 :(得分:0)

你没有按元素迭代(即for el in a),这是一件好事,因为我相信修改你迭代的列表是行不通的。 然而,你的方法仍然有一个缺陷,因为在循环开始时计算了许多元素len(a)并且索引没有考虑到你要移除元素的事实,所以被检查元素将引用pop之后列表中的位置(跳过元素和超出列表长度)。 您的示例使用临时列表b:

以非常简单的方式重写
a=[1,3,3,6,3,5,5,7]

b=a[0:1]
for i in range(len(a)-1):
    print (a[i],a[i+1])
    if a[i]!=a[i+1]:
        b.append(a[i+1])
a=b

或单行版本:

from itertools import compress
list(compress(a,[x!=y for x,y in zip(a[:-1],a[1:])]))

无论如何,如果您的目的是删除列表中的连续重复项目,您可以轻松搜索谷歌或堆栈溢出' python从列表中删除连续重复项目。

答案 2 :(得分:0)

for this, next in zip(a, a[1:]):
    compare(this, next)