Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Find element in list n times Python

Given are

a = [1, 4, 2, 5]

b = [[[0, 1]], [[0, 2]], [[0, 3]], [[0, 4]], [[0, 5]], [[0, 6]], [[0, 2]], [[0, 3]], [[0, 4]], [[0, 5]], [[0, 4]],
     [[0, 5]], [[0, 6]], [[0, 4]], [[0, 2]], [[0, 2]], [[0, 4]], [[0, 4]], [[0, 5]], [[0, 5]], [[0, 5]], [[0, 1]],
     [[0, 5]], [[0, 1]], [[0, 1]]]

My goal is to iterate over the list a and to identify (print) those elements in b which have the element of a as element at index 1. The whole thing becomes difficult by the fact that this process may occur exactly three times for each element. After that, the next index in a is to be selected.
In concrete terms, the whole thing should look like this at the end:

[[0, 1]]
[[0, 1]]
[[0, 1]]
[[0, 4]]
[[0, 4]]
[[0, 4]]
[[0, 2]]
[[0, 2]]
[[0, 2]]
[[0, 5]]
[[0, 5]]
[[0, 5]]

All elements in b beyond that are to be ignored, even and especially if they occur more than three times.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

I have already tried various techniques ( random, while loop, etc.), racked my brain and searched this forum, but I am stuck.

It doesn’t matter which elements are selected in b, the main thing is that there are three for each element in a.

>Solution :

If you want to make it easier, you can simply follow the steps below:

a = [1, 4, 2, 5]

b = [[[0, 1]], [[0, 2]], [[0, 3]], [[0, 4]], [[0, 5]], [[0, 6]], [[0, 2]], [[0, 3]], [[0, 4]], [[0, 5]], [[0, 4]],
     [[0, 5]], [[0, 6]], [[0, 4]], [[0, 2]], [[0, 2]], [[0, 4]], [[0, 4]], [[0, 5]], [[0, 5]], [[0, 5]], [[0, 1]],
     [[0, 5]], [[0, 1]], [[0, 1]]]

for val_a in a:
    counter = 0
    for val_b in b:
       if val_a == val_b[0][1]:
           counter += 1
           if counter < 4:
                print(val_b)

I hope I could help! 😀

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading