PyNotes
Open in Telegram
**Code is communication** admin: @Xojarbu https://t.me/solutions_py for problem solutions
Show more270
Subscribers
No data24 hours
No data7 days
No data30 days
Posts Archive
270
Title: getters and setters in Python
Getters and Setters are used to ensure data encapsulation in OOP.
In python they are not the same as in other languages, because private variables are not hidden in python.
Getters and Setters are used to add validation for getting and setting values or to avoid direct access of a class field.
š get() and set() methods don't fully work as getters and setters. In this case, python has a special function property()
Sources: Python cookbook and geeksforgeeks
270
Title: Namespaces
A namespace is a system that has a unique name for each and every object in Python. An object might be a variable or a method.
There are 3 types of namespaces:
built-in namespaces
global namespaces
local namespaces
e.g
var1 = 5 # global namespace
def some_func():
var2 = 6 # local namespace
The built-in namespace is always available when Python is running. You can list all built-in namespaces with dir(__builtins__)
Source270
#memory_management
Title: String interning
To alleviate memory that can be quickly consumed by strings, Python implements string interning
ā A string will be interned if it is a compile-time constant, is not the production of constant folding or is not longer than 20 characters, and consists exclusively of ASCII letters, digits, or underscores.
āEmpty strings are interned.
Source
270
#class #methods
Title:
__repr__ with __str__
āWhen we call Class it is represented by __str__ method by default, if there is not __str__ method, __repr__() method will be called.
āThe __repr__() method returns the code representation of an instance, The __str__() method converts the instance to a string
! A good example is provided above
source: "Python Cookbook:270
Transforming and reducing data
To calculate the sum of
squares, do the following:
nums = [1, 2, 3, 4, 5]
s = sum(x * x for x in nums)
instead of:
s = sum((x * x for x in nums)) or
s = sum([x * x for x in nums])
It introduces an extra step and creates an extra list or tuple.
Source: Python cookbook270
Title: Remove duplicates from list, without changing items order
You can do the same with
set(items), but it doesnāt preserve any kind of ordering. Output will be:
{1, 2, 10, 5, 9}
! This works with hashable items.
Source: Python cookbook270
#dicts
Title: Comparing dictionaries
Dictionary keys() and items() support common set operations such as unions, intersections, and differences.
values() method of a dictionary does not support the set operations, therefore we cannot perform those operations with dictionary values.
Source: Python Cookbook
270
#dicts
Title: Calculating dicts
prices = {
'ACME': 45.23,
'AAPL': 612.78,
'IBM': 205.55,
'HPQ': 37.20,
'FB': 10.75
}
Get min from dict:
min_price = min(zip(prices.values(), prices.keys())) # min_price is (10.75, 'FB')Get max from dict
max_price = max(zip(prices.values(), prices.keys())) # max_price is (612.78, 'AAPL')Sort Dict:
prices_sorted = sorted(zip(prices.values(), prices.keys()))
š be aware that zip() creates an iterator that can only be consumed once. If you call zip variable next time, it will return empty obj.270
#heapq
Title: heapq
The most important feature of a heap is that heap[0] is always the smallest item.
heapq.heappop()-pops off the first item and replaces it with the next smallest item (an operation that
requires O(log N) operations where N is the size of the heap)
source: Python cookbook
270
Dict keyword access
If nested dictionary throws an error while getting item by key with get(), You can use default empty {}
270
sort() with sorted()
the sort() function will modify the list it is called on. The sorted() function will create a new list containing a sorted version of the list it is given.
270
#heapq
Finding the Largest or Smallest N Items
The heapq module has two functionsānlargest() and nsmallest()
āļø note that If you are simply trying to find the single smallest or largest item (N=1), it is faster to use min() and max()
source: "python cookbook" 3rd edition
270
#SubArray, #SubSequence, #SubSet
Comparing SubArray SubSequence and SubSet
ā
Subarray is contiguous sequence in an array.
e.g we have an array of {1, 2, 3, 4}
subarray can be: {1,2,3}, {2,3,4}, {1,2} etc.
ā
A subsequence doesn't need to be contiguous, but maintains order
e.g subsequence can be: {1, 2, 4} {2, 4} {1, 3, 4} etc.
ā
A subset doesnāt need to maintain order and has non-contiguous behavior.
e.g subset can be: {4, 1,3} {3, 1, 2 } etc.
270
#Deque_continue
deque(maxlen=N) creates a fixed-sized queue. When new items are added and the queue is full, the oldest item is automatically removed. (Source: "Python Cookbook")
270
#Deque
A deque (double-ended queue), from collections library, has the feature of adding and removing elements from either end(source). It is preferred over list in the cases where we need quicker append and pop operations from both the ends of container, as deque provides an O(1) time complexity for append and pop operations as compared to list which provides O(n) time complexity (source).
270
We have translated repo with huge list of things to learn into Uzbek, for Interview preparation for giants such as : Amazon, Facebook, Google, and Microsoft.
https://github.com/jwasham/coding-interview-university/blob/main/translations/README-uz.md
share with your friends )
