Skip to content

Instantly share code, notes, and snippets.

@gokulprathin8
Created June 23, 2025 19:45
Show Gist options
  • Save gokulprathin8/4662f5faa235a4affb59e2edde948c6d to your computer and use it in GitHub Desktop.
Save gokulprathin8/4662f5faa235a4affb59e2edde948c6d to your computer and use it in GitHub Desktop.
from pprint import pprint
all_parts = [
"Rosie_claw",
"Rosie_sensors",
"Dustie_case",
"Optimus_sensors",
"Rust_sensors",
"Rosie_case",
"Rust_case",
"Optimus_speaker",
"Rosie_wheels",
"Rosie_speaker",
"Dustie_case",
"Dustie_arms",
"Rust_claw",
"Dustie_case",
"Dustie_speaker",
"Optimus_case",
"Optimus_wheels",
"Rust_legs",
"Optimus_sensors"
]
required_parts_1 = "sensors,case,speaker,wheels";
def get_robots(all_parts: list[str], required_parts: str):
res = []
req_parts = required_parts.split(",")
filtered_parts = list(filter(lambda x: x.split("_")[1] in f"_{req_parts}", all_parts))
parts_map = {}
for f in filtered_parts:
name, part = f.split("_")[0], f.split("_")[1]
if name not in parts_map:
parts_map[name] = [part]
else:
parts_map[name].append(part)
for k, v in parts_map.items():
if set(req_parts).issubset(set(v)):
res.append(k)
print(res)
get_robots(all_parts, required_parts_1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment