Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

141
Views
Identificar el índice de todos los elementos en una lista comparándolos con otra lista

Por ejemplo, tengo una lista A :

 A = [100, 200, 300, 200, 400, 500, 600, 400, 700, 200, 500, 800]

Y tengo la lista B :

 B = [100, 200, 200, 500, 600, 200, 500]

Necesito identificar el índice de elementos en B con respecto a A

Yo he tratado:

 list_index = [A.index(i) for i in B]

Vuelve:

 [0, 1, 1, 5, 6, 1, 5]

Pero lo que necesito es:

 [0, 1, 3, 5, 6, 9, 10]

¿Cómo puedo resolverlo?

over 4 years ago · Santiago Trujillo
6 answers
Answer question

0

Recorro B y establezco el índice marcado en Ninguno en A. Por lo tanto, el código alterará A.

 A = [100, 200, 300, 200, 400, 500, 600, 400, 700, 200, 500, 800] B = [100, 200, 200, 500, 600, 200, 500] res = [] for i in B: res.append(A.index(i)) A[A.index(i)] = None print(res)

Producción:

 [0, 1, 3, 5, 6, 9, 10]
over 4 years ago · Santiago Trujillo Report

0

Esto es lo que yo usaría:

 A=[100,200,300,200,400,500,600,400,700,200,500,800] B=[100,200,200,500,600,200,500] list_index = [] removedElements = 0 for i in B: indexInA = A.index(i) A.pop(indexInA) list_index.append(indexInA+removedElements) removedElements+=1 print(list_index)
over 4 years ago · Santiago Trujillo Report

0

Puedes probar algo como esto. Muévase sobre ambas listas y agregue el índice cuando sean iguales:

 A = [100,200,300,200,400,500,600,400,700,200,500,800] B = [100,200,200,500,600,200,500] i, j = 0, 0 list_index = [] while j < len(B): if B[j] == A[i]: list_index.append(i) j += 1 i += 1 print(list_index)

Producción:

[0, 1, 3, 5, 6, 9, 10]

over 4 years ago · Santiago Trujillo Report

0

Puede crear una lista llamada índices y obtener el primer índice en ella. Luego itere el resto de los elementos en B , luego tome la porción de A del último índice en la lista de indices y obtenga el índice del elemento, agréguelo al último índice + 1, luego vuelva a agregarlo a la lista de indices .

 indices = [A.index(B[0])] for i,v in enumerate(B[1:]): indices.append(A[indices[-1]+1:].index(v)+indices[-1]+1) #indices: [0, 1, 3, 5, 6, 9, 10]
over 4 years ago · Santiago Trujillo Report

0

Puede iterar a través de la enumeración de A para realizar un seguimiento de los índices y generar los valores donde coinciden:

 A = [100,200,300,200,400,500,600,400,700,200,500,800] B = [100,200,200,500,600,200,500] def get_indices(A, B): a_it = enumerate(A) for n in B: for i, an in a_it: if n == an: yield i break list(get_indices(A, B)) # [0, 1, 3, 5, 6, 9, 10]

Esto evita usar index() varias veces.

over 4 years ago · Santiago Trujillo Report

0

A = np.array([100,200,300,200,400,500,600,400,700,200,500,800]) B = [100, 200, 200, 500, 600, 200, 500] idx = np.arange(len(A)) indices = {i: idx[A == i].tolist() for i in set(B)} [indices[i].pop(0) for i in B]
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!