Skip to content

most-common-element

def majority_element(nums: list) -> int:
    return max(set(nums), key=nums.count)

swap variables

variable_1 = 1
variable_2 = 2
variable_1, variable_2 = variable_2, variable_1

copy copy list to another list

myList = [1,2,3]
mylist2 = myList[:]
#now these lists are two different objects

#copy part of list
myList = [1,2,3,4,5,6,7,8]
mylist2 = myList[4:7] #(5-7)

#omitting start index is equivalent of specifying 0 as start index
myList = [1,2,3,4,5,6,7,8]
mylist2 = myList[:7] #(1-7)
#same for omitting end index

#del instruction can delete slice of list
myList = [1,2,3,4,5,6,7,8]
del myList[2:7] #(myList will be 1,2,8)

in #not_in

my_list = [0, 3, 12, 8, 2]

print(5 in my_list)
print(5 not in my_list)
print(12 in my_list)

list-in-one-row

myList = [i for i in range(10)]

#two-dimensional array in one row
mylist = [["something" for i in range(10)] for j in range(5)]

#three-dimensional array
rooms = [[[False for r in range(20)] for f in range(15)] for t in range(3)]

List of lists to list:

result_list = sum(list_of_lists, [])

global-var

def my_function():
    global var
    var = 2
    print("Do I know that variable?", var)


var = 1
my_function()
print(var)

backslash (`new line for text editor)

def bmi(weight, height):
    if height < 1.0 or height > 2.5 or \
    weight < 20 or weight > 200:
        return None

    return weight / height ** 2

formatting

pip install black ruff

Changes formatting

black mypy.py

Checks formatting

ruff mypy.py

built-in-debugger

import pdb

#в точці зупинки ввести:
pdb.set_trace()
#На цьому рядку програма зупиниться і в терміналі можна буде викликати вбудовані функції, наприклад type(variable), переглядати змінні та ввести continue (c) щоб продовжити

sort #by-length

words = ["banana", "apple", "cherry", "date"] 
sorted_words = sorted(words, key=len) print(sorted_words) # ["date", "apple", "banana", "cherry"]

args-example

def multiply_numbers(a: int = 1, b: int = 1, *args, **kwargs) -> int:
return a * b

shebang

#!/usr/bin/env python3

is-and-equals

is - comparing objects == - comparing data inside objects

own-callable

str - приймає, а bool - повертає

from typing import Callable




def new_number(number: int) -> None:

print(f"Received a new number: {number}")




def is_positive(number: int) -> None:

if number > 0:

print(f"{number} is a positive number")

if number == 0:

print("Zero")

if number < 0:

print(f"{number} is a negative number")




def print_bye(number: int) -> None:

print("Bye!")




def numbers_handler(

numbers: list,

before : Callable[[int], None] = new_number,

action : Callable[[int], None] = is_positive,

after : Callable[[int], None] = print_bye,

) -> None:

for number in numbers:

before(number)

action(number)

after(number)

swap #elements #in #list

Swap elements in list
1
2
3
4
5
my_list = [10, 1, 8, 3, 5]
length = len(my_list)
for i in range(length // 2):
    my_list[i], my_list[length - i - 1] = my_list[length - i - 1], my_list[i] 
print(my_list)