{"id":19303791,"url":"https://github.com/mohit-rathee/pythoniclist","last_synced_at":"2025-07-16T18:07:25.743Z","repository":{"id":211682677,"uuid":"729728594","full_name":"mohit-rathee/PythonicList","owner":"mohit-rathee","description":"Re-implemented lists from Python in C to enhance my understanding in memory management.","archived":false,"fork":false,"pushed_at":"2024-01-17T15:23:27.000Z","size":67,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T02:13:37.934Z","etag":null,"topics":["c","library","low-level-programming","memory-management"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mohit-rathee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-10T06:45:03.000Z","updated_at":"2024-10-28T02:55:38.000Z","dependencies_parsed_at":"2024-11-09T23:27:47.087Z","dependency_job_id":"b25ac582-bb29-45ac-b3f8-c439057f35d4","html_url":"https://github.com/mohit-rathee/PythonicList","commit_stats":null,"previous_names":["mohit-rathee/pythoniclist"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mohit-rathee/PythonicList","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohit-rathee%2FPythonicList","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohit-rathee%2FPythonicList/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohit-rathee%2FPythonicList/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohit-rathee%2FPythonicList/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mohit-rathee","download_url":"https://codeload.github.com/mohit-rathee/PythonicList/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohit-rathee%2FPythonicList/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265529121,"owners_count":23782825,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","library","low-level-programming","memory-management"],"created_at":"2024-11-09T23:27:34.404Z","updated_at":"2025-07-16T18:07:25.720Z","avatar_url":"https://github.com/mohit-rathee.png","language":"C","readme":"# PythonicList\nRe-Implementation of Pythonic list in c.\n\n### How Python List works:\n- Lists in python are actually pre-allocated with some capacity, which is hidden to user.\n- Even though you lists looks empty and has lenght=0. It already already allocated an array of let's say 50.\n- That's why __append()__ function has __O(1)__ complexity. Because all it's doing is putting value in an array and increasing the size by 1.\n- And when capacity is reached, then a new array with it's double size is allocated and whole data is copied to that new array(basically expand). Same happens when you pop from array(it shrinks).\n- Best thing about these lists is that they can store multiple kind of data like int, char, char*(string), bool, list, dictionary etc. Well this is possible due to pointers, yeah instead of storing the string it stores the pointer to the string.\n\n### Whats Done:\n- Storing multiple type of data in list.\n- Basic  functions like :- Append, Pop, insert, get, update, add, print, Free.\n- Capacity logic (that expansion and shrinking).\n  \n### Some caveats:\n- You don't need to free your strings, when you pop them.(It will check for refrence count.)\n- When you have a list of too much String. Even if you pop all of them, c memory management will not give the empty space to kernal.(BUT hey you can use that later, if needed)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohit-rathee%2Fpythoniclist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohit-rathee%2Fpythoniclist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohit-rathee%2Fpythoniclist/lists"}