The Python library itertools contains many useful functions. 🐍✨
One of them is compress(), which returns an iterator over the elements from data, for which the corresponding element in selectors is equal to True. 🔍💻
Here's an example: 📝👇
#Python #Programming #Itertools #Coding #Tech #DataScience
One of them is compress(), which returns an iterator over the elements from data, for which the corresponding element in selectors is equal to True. 🔍💻
Here's an example: 📝👇
#Python #Programming #Itertools #Coding #Tech #DataScience
🔥2
Cheat sheet on the basics of Python: 🐍📚
basic syntax and language rules 📝
scalar types — basic data types (int, float, bool, str, NoneType) 🔢
datetime — working with date and time 📅⏰
data structures — Python data structures (list, tuple, dict, set) 🗄
list — mutable lists for storing data collections 📋
tuple — immutable sequences of values 🔒
dict (hash map) — storing data in a key-value format 🗝
set — unique elements without order 🔘
slicing — obtaining parts of sequences through indices and step ✂️
module/library — connecting modules and libraries 🔌
help functions — using help() and dir() to explore the Python API 🛠
#Python #Coding #DataScience #Programming #Tech #DevCommunity
basic syntax and language rules 📝
scalar types — basic data types (int, float, bool, str, NoneType) 🔢
datetime — working with date and time 📅⏰
data structures — Python data structures (list, tuple, dict, set) 🗄
list — mutable lists for storing data collections 📋
tuple — immutable sequences of values 🔒
dict (hash map) — storing data in a key-value format 🗝
set — unique elements without order 🔘
slicing — obtaining parts of sequences through indices and step ✂️
module/library — connecting modules and libraries 🔌
help functions — using help() and dir() to explore the Python API 🛠
#Python #Coding #DataScience #Programming #Tech #DevCommunity
❤5🔥3👍2
Do you know that Python can shift sequences without slicing and creating new lists? 🤔
When you need to cyclically shift data, many use slicing:
But
A negative value rotates the queue in the other direction. ⬅️
This is useful for ring buffers, task schedulers, cyclical queues, and round-robin algorithms. 🔄
🔥
#Python #Programming #Deque #CodingTips #Tech #DevCommunity
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 #Programming #Deque #CodingTips #Tech #DevCommunity
❤7
"Open Data Structures" is another very useful free resource for anyone studying data structures and algorithms. 📚✨
The book discusses the implementation and analysis of basic structures: array-based lists, linked lists, hash tables, binary trees, red-black trees, heaps, sorting algorithms, graphs, and data structures for working with integers. 🔍🧮
This is a full-fledged open textbook for studying one of the fundamental topics of computer science and a good reference that's worth keeping on hand. 💻🌟
https://opendatastructures.org/ods-python.pdf 📄
👉 @PythonRe
#DataStructures #Algorithms #Python #ComputerScience #OpenSource #Learning
The book discusses the implementation and analysis of basic structures: array-based lists, linked lists, hash tables, binary trees, red-black trees, heaps, sorting algorithms, graphs, and data structures for working with integers. 🔍🧮
This is a full-fledged open textbook for studying one of the fundamental topics of computer science and a good reference that's worth keeping on hand. 💻🌟
https://opendatastructures.org/ods-python.pdf 📄
#DataStructures #Algorithms #Python #ComputerScience #OpenSource #Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7
How to check for the presence of subclasses in Python? 🐍🧐
Here's how you can do it:
This function uses the
#Python #Programming #Subclasses #Coding #Dev #Tech
Here's how you can do it:
import inspect
def has_subclasses(cls):
return any(issubclass(sub, cls) for sub in inspect.getmembers(sys.modules[cls.__module__], inspect.isclass))
This function uses the
inspect module to find all subclasses of the given class. 🛠️#Python #Programming #Subclasses #Coding #Dev #Tech
❤5👍1
📂 Reminder about Python map()!
map() — a built-in function that applies the specified function to each element of an iterable object (list, tuple, set, etc.).
The picture shows the basic syntax, an example of use with lambda, and a typical case — data transformation without a manual for loop.
Save it to quickly remember the syntax!
🐍💻🗺️ #Python #Coding #Programming #LearnToCode #DevTips #Tech
map() — a built-in function that applies the specified function to each element of an iterable object (list, tuple, set, etc.).
The picture shows the basic syntax, an example of use with lambda, and a typical case — data transformation without a manual for loop.
Save it to quickly remember the syntax!
🐍💻🗺️ #Python #Coding #Programming #LearnToCode #DevTips #Tech
❤7👍1
If you're working with data pipelines, these repositories are very useful: 🚀📊
ibis: A Python API that allows you to write queries once and run them on different data backends, such as DuckDB, BigQuery, and Snowflake. 🐍🔗
https://github.com/ibis-project/ibis
pygwalker: Instantly turns a DataFrame into an interactive UI for visual data exploration. 📈🖥️
https://github.com/Kanaries/pygwalker
katana: A fast and scalable web crawler, often used for security testing and large-scale data collection/search. 🕷️🔒
https://github.com/projectdiscovery/katana
#dataengineering #python #opensource #devtools #dataviz #security
ibis: A Python API that allows you to write queries once and run them on different data backends, such as DuckDB, BigQuery, and Snowflake. 🐍🔗
https://github.com/ibis-project/ibis
pygwalker: Instantly turns a DataFrame into an interactive UI for visual data exploration. 📈🖥️
https://github.com/Kanaries/pygwalker
katana: A fast and scalable web crawler, often used for security testing and large-scale data collection/search. 🕷️🔒
https://github.com/projectdiscovery/katana
#dataengineering #python #opensource #devtools #dataviz #security
❤3
Why is enumerate() used in Python? 🤔🐍
It allows you to simultaneously obtain the value of an element and its index when iterating through a list. 📊✨
This is more convenient and more readable than manually working with a counter. ✅🚀
#Python #Coding #Programming #Dev #Tech #Code
✨ Join Best TG Channels
https://t.me/addlist/0f6vfFbEMdAwODBk
⭐️ Join Our WhatsApp Channel
https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
It allows you to simultaneously obtain the value of an element and its index when iterating through a list. 📊✨
This is more convenient and more readable than manually working with a counter. ✅🚀
for i, item in enumerate(items):
print(i, item)
#Python #Coding #Programming #Dev #Tech #Code
✨ Join Best TG Channels
https://t.me/addlist/0f6vfFbEMdAwODBk
⭐️ Join Our WhatsApp Channel
https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
❤4👍1👏1
Data validation with Pydantic! 🐍✨
In the early stages of development, data validation usually doesn't cause problems. In many Python projects, validation initially looks simple:
But then come email, JSON from APIs, query parameters, nested objects, configs, nullable fields, and type conversion. At some point, the code turns into a set of if/else and manual checks.
For such tasks, Pydantic is often used. Installation:
Create a model:
Now the data is validated automatically:
The result:
30
<class 'int'>
Pydantic will automatically convert the string "30" to an int. If you pass an incorrect value, you'll get a ValidationError:
This is especially convenient when working with APIs, JSON, query parameters, and incoming data from outside.
A common production case is checking email:
If the email is invalid, Pydantic will throw a ValidationError. You can set default values:
And allow None:
This field becomes optional. A practical example is processing an API response:
The types will be automatically converted. For nested model structures, you can combine:
The nested object will also be validated. Serialization in Pydantic v2:
Pydantic is actively used in FastAPI, ETL, microservices, data pipelines, and API clients.
For working with environment variables in Pydantic v2, a separate package is usually used:
It's important to understand: Pydantic is not an ORM and does not replace business logic. Its task is to validate data, convert types, and describe schemas.
🔥 Pydantic significantly reduces the amount of manual data validation and makes processing incoming structures more predictable.
#Python #Pydantic #DataValidation #FastAPI #Coding #DevOps
✨ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk
⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
In the early stages of development, data validation usually doesn't cause problems. In many Python projects, validation initially looks simple:
if not isinstance(age, int):
raise ValueError("age must be an int")
But then come email, JSON from APIs, query parameters, nested objects, configs, nullable fields, and type conversion. At some point, the code turns into a set of if/else and manual checks.
For such tasks, Pydantic is often used. Installation:
pip install pydantic
pip install "pydantic[email]"
Create a model:
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
Now the data is validated automatically:
user = User(
name="Alex",
age="30"
)
print(user.age)
print(type(user.age))
The result:
30
<class 'int'>
Pydantic will automatically convert the string "30" to an int. If you pass an incorrect value, you'll get a ValidationError:
User(
name="Alex",
age="test"
)
This is especially convenient when working with APIs, JSON, query parameters, and incoming data from outside.
A common production case is checking email:
from pydantic import BaseModel, EmailStr
class User(BaseModel):
email: EmailStr
User(email="alex@test.com")
If the email is invalid, Pydantic will throw a ValidationError. You can set default values:
from pydantic import BaseModel
class Config(BaseModel):
host: str = "localhost"
port: int = 5432
And allow None:
from pydantic import BaseModel
class User(BaseModel):
nickname: str | None = None
This field becomes optional. A practical example is processing an API response:
from pydantic import BaseModel
class Product(BaseModel):
id: int
title: str
price: float
data = {
"id": "1",
"title": "Keyboard",
"price": "99.5"
}
product = Product(**data)
print(product)
The types will be automatically converted. For nested model structures, you can combine:
from pydantic import BaseModel
class Address(BaseModel):
city: str
zip_code: str
class User(BaseModel):
name: str
address: Address
user = User(
name="Alex",
address={
"city": "Berlin",
"zip_code": "10115"
}
)
print(user)
The nested object will also be validated. Serialization in Pydantic v2:
print(user.model_dump())
print(user.model_dump_json())
Pydantic is actively used in FastAPI, ETL, microservices, data pipelines, and API clients.
For working with environment variables in Pydantic v2, a separate package is usually used:
pip install pydantic-settings
It's important to understand: Pydantic is not an ORM and does not replace business logic. Its task is to validate data, convert types, and describe schemas.
🔥 Pydantic significantly reduces the amount of manual data validation and makes processing incoming structures more predictable.
#Python #Pydantic #DataValidation #FastAPI #Coding #DevOps
✨ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk
⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
Telegram
AI PYTHON 🌟
You’ve been invited to add the folder “AI PYTHON 🌟”, which includes 14 chats.
❤3👍1