У меня есть два списка, как показано ниже:
A = [[0, [1, 2]], [1, [3, 4]], [2, [5, 6]], [3, [7, 8]], [4, [9, 10]], [5, [11, 12]], [6, [13, 14]]]
и
B = [[0, [1, 2]], [1, [4, 5]], [4, [[7, 8], [9, 10]]]]
Я хочу заменить некоторые элементы A на основе некоторых условий, связанных со списком B.
Я написал код, который делает то, что я ищу, как показано ниже:
x = 3
v = [0, 1, 4]
for i in range (x):
if i in v and B[i][0] == A[i][0]:
A[i][1][0] = B[i][1][1]
for elem in v:
if elem not in range(x):
A[elem][1][0] = B[2][1][1][0]
A[elem+1][1][0] = B[2][1][1][1]
else:
A = A
print (A)
Моя проблема с этими строками:
for elem in v:
if elem not in range (x):
A[elem][1][0] = B[2][1][1][0]
A[elem+1][1][0] = B[2][1][1][1]
Как видите, после просмотра элементов списка v
и проверки, нет ли этих элементов в range (x)
, в данном случае это элемент 4
, я хочу заменить некоторые элементы A
с некоторыми элементами B
, в этом случае этот элемент равен [4, [[7, 8], [9, 10]]]
, однако индекс этого элемента в списке B
равен 2
. Есть ли другой способ использовать 4
в [4, [[7, 8], [9, 10]]]
, который также является элементом v
внутри кода вместо записи B[2]
? Я хочу использовать [x[0] for x in B]
в качестве индикаторов вместо использования индексов, так как они разные.
Спасибо