Learn Python Coding
39.1K subscribers
639 photos
31 videos
24 files
398 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
⚡️ How Redis counts billions of unique values while barely using memory

There's an algorithm called HyperLogLog. It allows you to roughly estimate how many unique elements have passed through the system, using about 12 KB of memory.

The idea is simple: Redis doesn't store the elements themselves.

It does the following:

- Takes an element
- Calculates a hash from it
- Uses part of the hash as a cell number
- Checks the other part to see how many consecutive zeros it contains
- If the new number is larger than the old one, it updates the cell

Why does this work?

Because a long series of zeros in the hash is rare.

For example:

- 1 consecutive zero - quite common
- 5 consecutive zeros - less common
- 10 consecutive zeros - about a 1 in 1024 chance
- 20 consecutive zeros - a very rare event

If Redis sees a very rare pattern, it means that many different elements have likely passed through it.

Redis uses 16,384 small counters. Each stores the maximum "rarity" it has seen for its group of elements.

Then Redis combines these values mathematically to get an estimate of unique elements.

Not an exact number, but a very close approximation.

The main trick of HyperLogLog:

it can handle millions or even billions of values, but memory hardly increases at all.

That's why Redis can count unique users, IPs, requests, or events without huge tables and lists.

#Redis #HyperLogLog #DataScience #Tech #BigData #MemoryEfficiency

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
🚨 ONLY THE FIRST 5 GET THIS.

I'm sharing this link with my network once — and only the first 5 people who enroll through it lock in a deal that has never been offered before.

👑 Lifetime access to HelloEncyclo — every AI, ML & Data Science course ever built — for ~$41. Once. Forever.
This isn't a drill. This isn't a rerun.
This is the founding-member price — and it disappears the moment the first 250 seats globally are gone.


13 courses live right now
40+ more in 2–3 weeks
Every future course included automatically
15-day money-back — full refund, no questions

Code: PRESALE-BOOK-WAVE-2GFG

(Log in with Gmail · valid once · applies at checkout)

👇 First 5. That's it.

https://helloencyclo.com/?ref=HUSSEINSHEIKHO

Once those 5 seats go through this link —

I'm not sharing it again. 🔥
1
This media is not supported in your browser
VIEW IN TELEGRAM
🎰 Welcome Bonus 1200% — Maczo Crypto Casino
🎮 Crypto exchange · Sports · Live casino — all in one place
💳 USDT instant deposit & withdrawal
https://tglink.io/10ac0a48667b40
→ Affiliate 60%
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
Media is too big
VIEW IN TELEGRAM
Join our livestream with Marina Wyss, Senior Applied Scientist at Twitch, as we discuss how to break into AI Engineering in 2026.

Sign up for FREE and save your seat here: luma.com/qgz4g4r7

Why should you join?

Many people interested in AI Engineering are asking the same questions:

Where do I start?
🤔 Do I need deep math first?
🧠 Should I focus on ML, LLMs, RAG, or AI agents?
🧭 How do I avoid wasting time learning the wrong things?
🚀 How do I go from learning to becoming hireable?

If you’re interested in AI Engineering but unsure how to approach it, this livestream is for you.

What you’ll learn

✦ What AI Engineering really is
✦ Where beginners should start
✦ What skills and topics actually matter
✦ Common mistakes to avoid
✦ Self-study vs bootcamp vs MSc
✦ How to think about becoming hireable in AI
✦ Practical advice from someone already working in the field

Sign up for FREE and save your seat: luma.com/qgz4g4r7
2
Please open Telegram to view this post
VIEW IN TELEGRAM
1
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
2
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