如何比较两个列表中出现在同一位置的项目?

时间:2016-10-18 19:30:59

标签: python python-3.x

正如标题所说,我需要比较两个列表中出现在同一位置的项目。

la=['a0', 'b1', 'a2', 'b3', 'a4', 'b5'] 
lb=['b0', 'a1', 'b2', 'a3', 'b4', 'b5']

例如'a0''b0'

通过比较它们,我想从列表中删除一个严格大于另一个的项目。如果它们是同一个项目,我想从列表中删除它们。这个函数的结果是:

la=['a0','a2','a4']
lb=['a1','a3']

我的问题是我不知道如何比较每个项目。

我只能使用标准Python库中的内置函数

2 个答案:

答案 0 :(得分:1)

i = 0
j = 0
while True:
    try:
        if la[i] > lb[j]:
            del la[i]
            j += 1
        elif la[i] < lb[j]:
            del lb[j]
            i += 1
        else:
            del la[i]
            del lb[j]
    except IndexError:
        break

这假设两个列表的长度相同。如果要从一个列表中删除元素而不从另一个列表中删除元素,则必须分别跟踪索引。

答案 1 :(得分:0)

因为,你所说的相当于说:让我们只从每个列表中选择--strictly-较小的数字。你可以这样做:

new_la = []
new_lb = []

for i in range(len(la)):
    if la[i] < lb[i]:
        new_la.append(la[i])
    elif lb[i] < la[i]:
        new_lb.append(lb[i])

la = new_la
lb = new_lb

请注意,此代码还会创建新列表,而不是就地删除它。在我看来,这看起来更具可读性。