How to test items with each other in 2 dimensional list?

2024/9/22 18:15:08

We have a 2 dimensional list (for this example we have it populated with unique 6 nodes and 3 masks)

myList = [[node1, mask1], [node2, mask1], [node3, mask1], [node4, mask2], [node5, mask2], [node6, mask3]]

Now i need to test each other somehow and generate a new list to put each node that is connected to a mask in a separate [], so i can easily access it later, but also i need to filter nodes like "node6" because "node6" is only connected to one mask (in our case with "mask3" only)

Basically i want my new list to look like this:

newList = [[node1, node2, node3], [node3, node4]] 

This has been giving me headache for couple of hours now.. THANK YOU IN ADVANCE!

note: it would be nice to see also what is the most efficient way to do this

edit1: what i tried:

myList =[[node1, masks1][node2, mask1] etc..] #this is earlier dynamically populated with nodes/masks
newList= []
for i in range(len(myList)):for j in range(len(myList[i])):try:if myList[i][0] in newList:pass elif myList[i][1] == myList[j][1] and len(myList) > 1:newList.append([db[i][0]])breakexcept IndexError:#print 'passed error'pass

I know this dose not makes much sense for what i asked.. my previous attempts are not saved - in this example i tried to populate each node in a newlist that is connected to the same mask twice or more time.. but this is not working as expected.

Answer

itertools.groupby() provides an efficient way to gather items:

from itertools import groupbymy_list = [['node1', 'mask1'],['node2', 'mask1'],['node3', 'mask1'],['node4', 'mask2'],['node5', 'mask2'],['node6', 'mask3']]masks_to_keep = ('mask1', 'mask2')# create a dict keyed by mask with (node, mask) pairs
as_dict = {x[0]: list(x[1]) for x in groupby(my_list, lambda x: x[1])}# create a list, in masks_to_keep order, of lists of nodes per mask
nodes = [[x[0] for x in as_dict[mask]] for mask in masks_to_keep]
https://en.xdnf.cn/q/119102.html

Related Q&A

InsecureRequestWarning + MarkupResemblesLocatorWarning:

Id like to scrape a site for my office work. I am learning each day. I need your support guys. Here is the Code: url = https://www.eprocure.gov.bd/partner/ViewTenderPaymentDetails.jsp?payId=33767442&a…

Fetching images from URL and saving on server and/or Table (ImageField)

Im not seeing much documentation on this. Im trying to get an image uploaded onto server from a URL. Ideally Id like to make things simple but Im in two minds as to whether using an ImageField is the b…

Comparing list with a list of lists

I have a list string_array = [1, 2, 3, 4, 5, 6] and a list of lists multi_list = [[1, 2], [2, 3], [2, 4], [4, 5], [5, 6]]The first element of each sub-list in multi_list will have an associated entry …

Cannot save data to database Python

I have a table called category TABLES["category"] = ("""CREATE TABLE category (category_id INTEGER NOT NULL AUTO_INCREMENT,category_name VARCHAR(120) NOT NULL,PRIMARY KEY (cate…

How to generate a permutation of list of lists in python

I have a list of lists say[[2, 4, 6], [2, 6, 10], [2, 12, 22], [4, 6, 8], [4, 8, 12], [6, 8, 10], [8, 10, 12], [8, 15, 22], [10, 11, 12]]How do I generate a combination of the lists for a given length?…

Issue sending file via Discord bot (Python)

if message.content.upper().startswith("!HEADPATS"):time.sleep(1)with open(tenor.gif, rb) as picture:await client.send_file(channel, picture)Ive got my discord bot up and running (everythings …

Matplotlib installation on Mavericks

Im having problem while installing matplotlib. Im using Mavericks and it complains about a deprecated NumPy API both installing via pip and installing from source (following the instructions here https…

Exact string search in XML files?

I need to search into some XML files (all of them have the same name, pom.xml) for the following text sequence exactly (also in subfolders), so in case somebody write some text or even a blank, I must …

Integrate a function by the trapezoidal rule- Python

Here is the homework assignment Im trying to solve:A further improvement of the approximate integration method from the last question is to divide the area under the f(x) curve into n equally-spaced tr…

Kivy module not found in vscode (Mac)

I have installed Kivy and when I used the IDLE app that came with Python I can import it and it runs perfectly. However, when I try to import it in vscode I get the error: ModuleNotFoundError: No modul…