正如标题所说,我需要比较两个列表中出现在同一位置的项目。
la=['a0', 'b1', 'a2', 'b3', 'a4', 'b5']
lb=['b0', 'a1', 'b2', 'a3', 'b4', 'b5']
例如'a0'
和'b0'
通过比较它们,我想从列表中删除一个严格大于另一个的项目。如果它们是同一个项目,我想从列表中删除它们。这个函数的结果是:
la=['a0','a2','a4']
lb=['a1','a3']
我的问题是我不知道如何比较每个项目。
我只能使用标准Python库中的内置函数
答案 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
请注意,此代码还会创建新列表,而不是就地删除它。在我看来,这看起来更具可读性。