Je veux obtenir l'union de 2 listes imbriquées plus un index aux valeurs communes.union python de 2 listes imbriquées avec index
J'ai deux listes comme A = [[1,2,3],[4,5,6],[7,8,9]]
et B = [[1,2,3,4],[3,3,5,7]]
mais la longueur de chaque liste est d'environ 100 000 à A appartient un vecteur d'index avec len(A)
: I = [2,3,4]
Ce que je veux est de trouver tous les sous-listes en B où le premier 3 éléments sont égal à une sous-liste dans A. Dans cet exemple, je veux obtenir B[0]
retourné ([1,2,3,4]
) parce que ses trois premiers éléments sont égaux à A[0]
. En outre, je veux également l'index à A[0]
dans cet exemple, c'est I[0]
.
J'ai essayé différentes choses, mais rien ne fonctionnait jusqu'à présent :(
D'abord j'ai essayé ceci:
Common = []
for i in range(len(B)):
if B[i][:3] in A:
id = [I[x] for x,y in enumerate(A) if y == B[i][:3]][0]
ctdCommon.append([int(id)] + B[i])
Mais cela prend une éternité, ou ne se termine jamais
Je transformé A
et B
en ensembles et a pris l'union des deux, ce qui était très rapide, mais je ne sais pas comment obtenir les indices correspondants
Est-ce que quelqu'un a une idée?
bien fait pour travailler sur assez de ce qui est demandé de produire une réponse. Mon cerveau me fait mal en essayant de comprendre ce qu'il veut. – MattH
Cela a fonctionné et superquick! Merci beaucoup! – sbas