Learn Python Coding
39.1K subscribers
643 photos
32 videos
24 files
404 links
Learn Python through simple, practical examples and real coding ideas. Clear explanations, useful snippets, and hands-on learning for anyone starting or improving their programming skills.

Admin: @HusseinSheikho || @Hussein_Sheikho
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
❤️ Architecture Patterns — an informative repository on backend architecture in Python!

Here, they excellently demonstrate how to properly separate application logic, work with complex architecture, build a scalable backend, and maintain a codebase in an adequate state as the project grows. Instead of dry theory, the authors gradually build a full-fledged application and show how the architecture evolves as the project grows.

I'll leave a link: https://github.com/cosmicpython/book

#Python #Backend #Architecture #Coding #DevCommunity #OpenSource

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
2
Why in Python it is better to check None using is 🐍

In Python, you should not write obj == None, even if sometimes it works the same ⚠️

The reason is that == calls the comparison method eq, which can be overridden in the class — and then the behavior becomes unpredictable 🎲

For example:

class Weird:
def eq(self, other):
return True # always says "equal"

obj = Weird()

print(obj == None) # True
print(obj is None) # False

Here obj == None gives a false result due to custom logic 🤔

Instead:

obj is None

is checks the identity of the object and cannot be overridden. Since None is a singleton, such a check is always correct and predictable

Conclusion: to check for None always use is None — it is the right and safe approach 🛡️

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

#Python #Programming #Coding #SoftwareDevelopment #TechTips #DevCommunity
5
Deep copying of objects with the copy module 🐍📦

import copy

# Original list with nested structure
original = [[1, 2, 3], [4, 5, 6]]

# 1. Shallow copy
shallow = copy.copy(original)
shallow[0][0] = 'X'
# Oh no! Both lists have changed, because the nested list wasn't copied, but passed by reference
print(f"Original after shallow: {original}") # [['X', 2, 3], [4, 5, 6]]

# Restore the data
original = [[1, 2, 3], [4, 5, 6]]

# 2. Deep copy
deep = copy.deepcopy(original)
deep[0][0] = 'X'
# Everything is fine! Only deep has changed, the original remains untouched
print(f"Original after deep: {original}") # [[1, 2, 3], [4, 5, 6]]

The link trap in Python 🔗🕳️

When you assign a list to another variable (A = B) or make a regular slice (A = B[:]), Python doesn't physically copy the data. It simply creates a new reference to the same objects in memory. If the list contains other mutable objects (lists, dictionaries, custom classes), standard copying methods will only create a shallow copy. The copy module allows you to control this process.

— Breaking the links: The deepcopy function recursively traverses the entire data structure and creates honest, independent duplicates for each nested element. This ensures that changes in the copy will not harm the original data. 🔓🔒
— Safe state: The use of deep copying is critical when implementing design patterns (for example, Snapshot/Memento), creating game state backups, or when you pass complex configurations to functions that may modify them accidentally. 🛡️💾
— A sensible balance: It's worth remembering that deepcopy works slower and consumes more memory than shallow copying, as it spends resources on creating new objects and checking for cyclic references. Use it specifically when there are nested mutable containers within the structure. ⚖️🧠

#Python #Programming #DeepCopy #Coding #Tech #Dev

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
6
Regular for-loops are versatile but not always optimal: they add extra interpreter overhead, which is especially noticeable on large data 🐍

In such cases, it's better to use standard Python tools, for example itertools ⚙️

For example, to get all unique pairs from a list, nested loops are not needed — just combinations():

from itertools import combinations

def get_unique_pairs(items):
return list(combinations(items, 2))

print(get_unique_pairs(['A', 'B', 'C', 'D']))

# Output:
# [('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]

Conclusion: instead of manual loops, it's better to use ready-made tools from the standard library — it's cleaner and more efficient 🚀

#Python #Coding #Programming #Developer #Tech #Optimization

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
5👍1
🐍 Python Roadmap 2026: Finally, a comprehensive and up-to-date map for learning Python, not just a list of "figure it out yourself" links

A large Russian-language Python roadmap for 2026 has been posted on GitHub - from the first scripts to the Middle+/Senior level.

The route is compiled for modern Python:

- Python 3.13+
- free-threaded mode without GIL
- JIT
- uv instead of the hassle with pip/venv/poetry
- ruff, pyright, pytest, hypothesis
- async-first approach
- typing
- CPython inside
- web, databases, ML/AI, DevOps, and architecture

The roadmap has a logical sequence: first the environment and foundation, then idioms, OOP, types, the standard library, asynchrony, testing, CPython internals, web, databases, the AI direction, production, and architecture.

A particular plus is the practical format. At each stage, there are tasks, checklists, code examples, and free resources. This is not a motivational document, but a roadmap that you can actually follow for several months and see progress.

For beginners - a clear path without chaos.
For juniors - a way to fill in the gaps.
For those who already write in Python - a good checklist to understand where you're still struggling.

Python in 2026 is about tooling, types, async, infrastructure, AI, and production discipline. And this roadmap is exactly about such a Python.

https://github.com/justxor/pythonroamap2026

#Python #PythonRoadmap #Programming #2026 #Coding #DevOps

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
2
5 More Must-Know Python Concepts 🐍

Let's take a look at five more fundamental concepts that every Python developer should have in their toolkit. 🛠️

Read: https://www.kdnuggets.com/5-more-must-know-python-concepts 🔗

#Python #Programming #Coding #Developer #TechTips #LearnPython

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
1
This media is not supported in your browser
VIEW IN TELEGRAM
✍️ Pyneng — a large base for Python and network automation!

Detailed documentation and educational materials. The site contains lessons on Python syntax, working with files, functions, OOP, as well as separate sections on network technologies. The materials are presented with a large number of examples and practical tasks.

📌 I'll leave a link: https://pyneng.readthedocs.io/en/latest/

#Python #NetworkAutomation #Pyneng #LearnPython #DevOps #TechEducation

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
4
When you're doing a parser or migrating a site, there's often a pile of unreadable HTML markup on the screen. Converting this into neat Markdown is usually a hassle.

In the open code, I found a convenient tool called python-markdownify, which precisely solves the problem of converting HTML to Markdown.

The logic is simple: you take bulky HTML and get a clear and well-structured Markdown as a result.

The tool is easily customizable. You can clean up the necessary tags, change the format of headings, and neatly process tables and images. All of this can be configured.

It's installed via pip. It can be used both from Python code and from the command line, converting files in batches.

pip install python-markdownify

If desired, you can inherit and redefine the conversion rules for your own cases. The extensibility is fine there.

If you have to process large amounts of text or migrate a blog, the library saves a lot of time that would otherwise be spent on tedious work with regular expressions.

➡️ Link to GitHub
http://github.com/matthewwithanm/python-markdownify

#python #markdown #html #coding #devtools #opensource

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
4
Advice for Python, UV, and Docker 🐍🐳

Sometimes dependencies are better installed separately from the code — this noticeably speeds up the compilation of Docker images 🚀

The idea is simple: first, we install dependencies, then we add the project 🛠

Why is this necessary:
Docker caches layers and does not rebuild them unnecessarily ⚡️
• if only the code changes — the dependencies are taken from the cache 💾
• if the dependencies change — only the corresponding layer is rebuilt 🔁
• without this, any minor change triggers a full reinstallation 🔄

Example:

RUN --mount=type=cache,target=/root/.cache/uv  --mount=type=bind,source=uv.lock,target=uv.lock  --mount=type=bind,source=pyproject.toml,target=pyproject.toml  uv sync --locked --no-install-project

COPY . /app
RUN --mount=type=cache,target=/root/.cache/uv uv sync --locked


#Python #Docker #DevOps #UV #SoftwareEngineering #TechTips

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

🚀 Level up your AI & Data Science skills with HelloEncyclo — a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
13 courses live + 40+ coming soon
🎯 One access, lifetime updates
🔑 Use code: PRESALE-BOOK-WAVE-2GFG
👉 https://helloencyclo.com/?ref=HUSSEINSHEIKHO
4
Limiting program resources using the resource module 🛡️

import resource
import sys

# 1. Limiting the size of RAM (soft and hard limits in bytes)
# Limit the memory to ~50 MB
memory_limit = 50 * 1024 * 1024
resource.setrlimit(resource.RLIMIT_AS, (memory_limit, memory_limit))

# 2. Checking the protection's working
try:
print("Trying to allocate a huge array of memory...")
huge_list = [i for i in range(10_000_000)]
except MemoryError:
print("The limit worked! The program didn't crash, but caught the error.")

# 3. Finding out how many resources the script has already consumed
usage = resource.getrusage(resource.RUSAGE_SELF)
print(f"Peak memory consumption (in KB): {usage.ru_maxrss}")

Protecting the server from "greedy" code 🔧

When you run someone else's code, process user files, or write parsers, there's always a risk of a memory leak or an infinite loop. If such a script runs on the server, it can fill up all the RAM and bring down neighboring important processes (for example, the database). The built-in resource module (works on Unix/Linux/macOS) allows you to strictly limit the program's appetites.

Safe environment: You can limit not only RAM (RLIMIT_AS), but also CPU time (RLIMIT_CPU). If the code goes into an infinite loop, the system will gracefully terminate it after a specified number of seconds.

File system control: Using RLIMIT_FSIZE, you can prevent the script from creating files larger than a certain size. This will save the server's disks from being accidentally overwritten by gigantic logs.

Precise audit: The getrusage function provides detailed statistics on the current process: how much time the CPU spent on calculations, how many I/O operations there were, and what the maximum amount of memory used was during the entire operation.

#Python #ResourceManagement #ServerSafety #Coding #DevOps #Linux

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

🚀 Level up your AI & Data Science skills with HelloEncyclo — a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
13 courses live + 40+ coming soon
🎯 One access, lifetime updates
🔑 Use code: PRESALE-BOOK-WAVE-2GFG
👉 https://helloencyclo.com/?ref=HUSSEINSHEIKHO
4
🎁 SPOTO Mid-Year Sale – Grab Your IT Certification Success Kit!

🔥 Whether you're prepping for #Python, #AI, #Cisco, #PMI, #Fortinet, #AWS, #Azure, #Excel, #Comptia, #ITIL, #Cloud or any other hot certification – SPOTO has your back with real exam dumps and hands-on training!

Free Resources:
・Free Python, Excel, Cyber Security, Cisco, SQL, ITIL, PMP, AWS courses: https://bit.ly/4alTSfk
・IT Certs E-book: https://bit.ly/49ub0zq
・IT Exams Skill Test: https://bit.ly/4dVPapB
・Free AI material and support tools: https://bit.ly/4elzcpl
・Free Cloud Study Guide: https://bit.ly/4u7sdG0

🎁 Join SPOTO Mid-Year Lucky Draw:
📱 iPhone 17 🛒 Free Order
🛒 Amazon Gift $100 📘PMP/ AWS/ CCNA Course


👉 Enter the Draw Now → https://bit.ly/4uN3lVt

👉 Join Our IT Learning Community for free resources & support:
https://chat.whatsapp.com/FmbIbbqm2QhKglVpVTSH4d
💬 Want exam help? Chat with an admin now:
https://wa.link/knicza

Mid-Year Deal Ends Soon – Don't Miss Out!
2
A 14-day tutorial where you build a Python code-agent CLI in the style of Claude Code from scratch and simultaneously understand how the Agent Harness actually works. 🛠️🤖

In the end, you don't just call a ready-made agent via the API, but you understand the components that make up a Claude Code-like tool. 🧠⚙️

https://github.com/bozhouDev/14days-build-claude-code-cli/blob/main/README.en.md

#Python #AI #ClaudeCode #CLI #CodingTutorial #Tech

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

🚀 Level up your AI & Data Science skills with HelloEncyclo — a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
13 courses live + 40+ coming soon
🎯 One access, lifetime updates
🔑 Use code: PRESALE-BOOK-WAVE-2GFG
👉 https://helloencyclo.com/?ref=HUSSEINSHEIKHO
2🔥1
Python can substitute an empty context manager without conditions inside!

It often happens that a resource needs to be opened via with, and sometimes the object is already ready and there's no need to open anything.

This usually leads to code duplication or conditions around with:

if need_open:
f = open(...)
else:
f = existing_file

`nullcontext(obj) behaves like an empty context manager and allows you to maintain a single execution flow.

This is especially useful for APIs, tests, optional resources, dependency injection, and functions that can accept both a path and a ready-made object.

with ctx as resource:
process(resource)

But note that nullcontext() does not close the passed object — it simply passes it on further.

🔥 nullcontext() helps to unify scenarios with optional context managers and significantly simplifies the architecture of IO code.

#Python #ContextManager #CodingTips #DevLife #Programming #Tech

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

🚀 Level up your AI & Data Science skills with HelloEncyclo — a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
13 courses live + 40+ coming soon
🎯 One access, lifetime updates
🔑 Use code: PRESALE-BOOK-WAVE-2GFG
👉 https://helloencyclo.com/?ref=HUSSEINSHEIKHO
1
Do you know that Python can shift sequences without slicing and creating new lists?

When you need to cyclically shift data, many use slicing:

data = data[-1:] + data[:-1]

But deque.rotate() does this at the level of the data structure and usually works more efficiently for cyclical operations.

q.rotate(1)

A negative value rotates the queue in the other direction.

q.rotate(-2)

This is useful for ring buffers, task schedulers, cyclical queues, and round-robin algorithms.

workers.rotate(-1)

🔥 deque.rotate() allows you to implement cyclical data structures without manual index logic and without creating new lists.

#Python #DataStructures #CodingTips #Programming #Deque #Tech

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

🚀 Level up your AI & Data Science skills with HelloEncyclo — a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
13 courses live + 40+ coming soon
🎯 One access, lifetime updates
🔑 Use code: PRESALE-BOOK-WAVE-2GFG
👉 https://helloencyclo.com/?ref=HUSSEINSHEIKHO
2
Shuffling without repetitions:

import random

# Initial list of candidates or prizes
participants = ["Alexey", "Maria", "Ivan", "Olga", "Dmitry"]

# 1. Selecting 3 unique winners (sample without replacement)
winners = random.sample(participants, k=3)
print(f"Winners: {winners}")
# The result is different each time, but there will be no repetitions within the list of winners!

# 2. Shuffling an entire string (creating an anagram)
word = "python"
shuffled_word = "".join(random.sample(word, len(word)))
print(f"Anagram: {shuffled_word}")

# 3. Important difference: random.choices allows repetitions
print(f"With repetitions: {random.choices(participants, k=3)}")

Honest selection and generation of unique sets

When it's necessary to implement the logic of prize draws, random task distribution, or generating test questions, developers often use random.choice() in a loop. But this approach requires manually ensuring that the same element is not selected twice. The random.sample function takes on this routine.

Guarantee of uniqueness: The main property of random.sample is "without replacement". The extracted element no longer participates in the next selection cycle, which completely eliminates duplicates in the resulting list.

Safety of the original: The function does not modify the original list (unlike random.shuffle()), but creates a completely new array with the results. This allows the structure of the original data to remain intact.

Strict control of size: If you pass a parameter k (the number of elements) that exceeds the length of the original list, Python will not start duplicating elements and will immediately throw an ValueError error. This protects the program logic from incorrect data.

#Python #Random #Coding #NoRepetition #DataScience #UniqueSets

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

🚀 Level up your AI & Data Science skills with HelloEncyclo — a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
13 courses live + 40+ coming soon
🎯 One access, lifetime updates
🔑 Use code: PRESALE-BOOK-WAVE-2GFG
👉 https://helloencyclo.com/?ref=HUSSEINSHEIKHO
3
Convert PDF to structured JSON — in a couple of lines and without hassle! 📄

Today, we'll create a mini-service that takes a PDF document, extracts the text from it, and asks GPT to neatly organize the content into sections: title, author, date, and a list of sections. 🚀

First, let's connect the necessary libraries and API key:

import os
from PyPDF2 import PdfReader
from openai import OpenAI

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

Now, let's extract the text from the PDF. We'll loop through all the pages and combine them into a single string:

reader = PdfReader("document.pdf")
text = "
".join(page.extract_text() for page in reader.pages)

Next, we'll send the obtained text to GPT. We'll ask the model to return a structured JSON with the necessary fields:

response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": (
"You are a PDF parser. Return a JSON with the fields: title, author, date, sections. "
"Each section is an object with name and summary."
)},
{"role": "user", "content": text}
]
)

Output the result:

structured = response.choices[0].message.content.strip()
print(structured)

🔥 Suitable for contracts, reports, methodologies, and any PDFs — we immediately get a JSON ready for use.

#PDF #JSON #Python #GPT #Automation #DataScience

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

🚀 Level up your AI & Data Science skills with HelloEncyclo — a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
13 courses live + 40+ coming soon
🎯 One access, lifetime updates
🔑 Use code: PRESALE-BOOK-WAVE-2GFG
👉 https://helloencyclo.com/?ref=HUSSEINSHEIKHO
1
How to create your own context manager in Python for opening and closing a connection to the SQLite database

The enter() method is used when opening a connection, and the exit() method is used when closing it:

import sqlite3

class DatabaseConnection:
def __init__(self, db_name):
self.db_name = db_name
self.connection = None

def __enter__(self):
self.connection = sqlite3.connect(self.db_name)
return self.connection

def __exit__(self, exc_type, exc_val, exc_tb):
if self.connection:
self.connection.close()

# Usage
with DatabaseConnection("example.db") as conn:
cursor = conn.cursor()
cursor.execute("SELECT * FROM users")

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

🚀 Level up your AI & Data Science skills with HelloEncyclo — a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
13 courses live + 40+ coming soon
🎯 One access, lifetime updates
🔑 Use code: PRESALE-BOOK-WAVE-2GFG
👉 https://helloencyclo.com/?ref=HUSSEINSHEIKHO

#Python #SQLite #ContextManager #Programming #Coding #Tech
2
Safe rounding of numbers with math.fsum

import math

# Initial list with fractions
values = [0.1] * 10

# 1. Regular summation via sum()
print(f"Standard sum(): {sum(values)}") # 0.9999999999999999

# 2. Exact summation via math.fsum()
print(f"Exact math.fsum(): {math.fsum(values)}") # 1.0

Eliminating errors when calculating arrays

We've already discussed why float in Python loses accuracy and how Decimal deals with this. But what if you need to add a million ordinary real numbers from a database or matrix, and it's not possible to convert everything to heavy Decimal objects due to a performance hit? The math.fsum() function comes to the rescue.

Eliminating accumulated error: When sequentially adding elements via the standard sum(), the microscopic errors of float are rounded at each step and "accumulate" in the loop. The math.fsum() function tracks intermediate accuracy losses and compensates for them during the calculations.

High performance: Since the math module is written in C, this function works several times faster than manually iterating through the array or using alternative data types. You get the speed of basic float calculations with near-perfect accuracy.

Stability in Data Science: This tool is indispensable when working with weights in neural networks, calculating averages of large samples, or processing financial transactions, where speed is important but it's critical not to lose valuable cents and fractions during mass operations.

🐍 #Python #DataScience #Coding #Programming #MathFsum #TechTips

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

🚀 Level up your AI & Data Science skills with HelloEncyclo — a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
13 courses live + 40+ coming soon
🎯 One access, lifetime updates
🔑 Use code: PRESALE-BOOK-WAVE-2GFG
👉 https://helloencyclo.com/?ref=HUSSEINSHEIKHO
3
Catch a useful trick for working with division in Python 🐍

divmod() takes two numbers and in a single operation returns a tuple with the quotient and remainder from the division 📊

#Python #Coding #Programming #Tech #Tips #Dev

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

🚀 Level up your AI & Data Science skills with HelloEncyclo — a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
13 courses live + 40+ coming soon
🎯 One access, lifetime updates
🔑 Use code: PRESALE-BOOK-WAVE-2GFG
👉 https://helloencyclo.com/?ref=HUSSEINSHEIKHO
3
Smart counting of elements using collections.Counter 📊

from collections import Counter

# Initial list with duplicate elements
logs = ["error", "info", "error", "warning", "error", "info"]

# 1. Instantly count the number of occurrences
count_dict = Counter(logs)
print(count_dict) # Counter({'error': 3, 'info': 2, 'warning': 1})

# 2. Get the most frequent elements (Top-2)
print(count_dict.most_common(2)) # [('error', 3), ('info', 2)]

# 3. Set math for counters
clicks_day1 = Counter(item=4, banner=2)
clicks_day2 = Counter(item=1, banner=5)
# Combine the results of two days in a single operation
print(clicks_day1 + clicks_day2) # Counter({'banner': 7, 'item': 5})

Forget about manual loops and dictionaries 🚫🔄

When you need to count the frequency of words in a text, the distribution of log types, or popular products in a store, developers usually create an empty dictionary and write a loop with a check if key not in dict: dict[key] = 1. The Counter class takes all this dirty work on itself and makes it as efficient as possible.

Automatic initialization: You no longer need to check if a key exists in the dictionary. If the element is not there, Counter will not throw a KeyError, but simply return 0. 🛡️

Finding leaders without sorting: The most_common(k) method returns a list of the k most frequently occurring elements. Under the hood, Python uses optimized heap algorithms, which work much faster than a full dictionary sort via sorted(). 🏆

Mathematical operations: You can add, subtract, intersect, and merge Counter objects. This turns them into a powerful tool for aggregating metrics and analytics from different data sources in a few lines of code.

#Python #DataScience #Coding #Programming #Automation #DevOps

Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

🚀 Level up your AI & Data Science skills with HelloEncyclo — a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
13 courses live + 40+ coming soon
🎯 One access, lifetime updates
🔑 Use code: PRESALE-BOOK-WAVE-2GFG
👉 https://helloencyclo.com/?ref=HUSSEINSHEIKHO
2