Soloution
a = [[[1, 2, 3, 4, 5, 6, 7, 8, 9],[0.4, 3]],[[1, 2, 3, 4, 5, 6, 7, 8, 9],[1.8, 1]]]
lista = []
for item in a:
for i in range(0, len(a)): #changed loop method
if item[0] == a[i][0]:
if item[1][1] <= a[i][1][1]: #changed to item[1] of last set
lista.append(item)
elif item[1][1] > a[i][1][1]:
lista.append(a[i])
print(lista)
выход
(xenial)vash@localhost:~/pcc/9$ python3 help.py
[[[1, 2, 3, 4, 5, 6, 7, 8, 9], [0.4, 3]], [[1, 2, 3, 4, 5, 6, 7, 8, 9], [1.8, 1]]]
(xenial)vash@localhost:~/pcc/9$
Это было весело, очень весело!
Таким образом, каждый item
содержит набор item
, для начала нам нужно сравнить item[0]
со всеми item[0]
, но только один раз, поэтому я сравнил item[0]
( 1, 2 ...) ко всем item[0]
, использующим a[i][0]
. Если item[0] == a[i][0]
, то мы можем сравнить следующие наборы. Затем мы сравним item[1][0]
с a[i][1][0]
(.04 v 1.8). Затем сравним item[1][1]
с a[i][1][1]
(3 v 1). Если item
равно <=
, мы можем append.item
, если item
равно >
, мы добавляем сравнительный набор append(a[i])
.
Обновлено: Вы заметили, что хотите сравнить item[1]
последнего набора, а не первый элемент последнего набора.
Также, пожалуйста, учтите, что это решение будет сравнивать себя с самим собой.
Чтобы обойти это, вы можете добавить if item == a[i]: continue
Жалобы
Моя единственная проблема в том, что вы пытаетесь достичь. Когда вы сравниваете >
и <
. Когда первый набор протестирован .4, если он меньше, добавится, он будет установлен, но затем, когда мы сравним 1,8 и он будет больше, вы снова добавите набор .4 ...
Вы можете изменить и добавить if item not in lista
и if a[i] not in lista
, которые проверяют, находится ли то, что вы добавляете, уже в lista
if item[1][0] <= a[i][1][0]:
if item not in lista:
lista.append(item)
elif item[1][0] > a[i][1][0]:
if a[i] not in lista:
lista.append(a[i])
Но даже при этом вы всегда будете append
меньшего item
, так что вы также можете просто оценить только <=
и проверить это в lista
перед вами append
Я был неправ, я забыл, что мы добавляем, если он также равен, так что наслаждайтесь надеждой, что это решение было тем, что вы искали!