Комментарии 36
Объединяем два словаря:
def merge(dic1,dic2): dic3=dic1.copy() dic3.update(dic2) return dic3 dic1={1:"hello", 2:"world"} dic2={3:"Python", 4:"Programming"} merge(dic1,dic2) # {1: 'hello', 2: 'world', 3: 'Python', 4: 'Programming'}
Не проще так:
{"1": 1} | {"2": 2} # Python 3.9
10. Занятая память
Пример позволяет получить объём памяти, используемой любой переменной в Python.
Не любой, не рекурсивная функция
import sys
var1=[x for x in range(1000000)]
var2=[var1]
print(sys.getsizeof(var1)) #8448728
print(sys.getsizeof(var2)) #64
Простите, а пример 5 будет работать? Просто я не питонист, и, наверное, чего-то не понимаю...
код из примера
import time
start_time= time.time()
def fun():
a=2
b=3
c=a+b
end_time= time.time()
fun()
timetaken = end_time - start_time
print("Your program takes: ", timetaken) # 0.0345
end_time= time.time() после вызова функции должно быть
А ещё лучше внутри, тк вызов функции — тоже время.
time.perf_counter()
[1][1]: docs.python.org/3/library/time.html#time.perf_counter
А ещё лучше вообще вспомнить про декораторы.
import time
def timed(func):
def wrapper(*args, **kwargs):
st = time.perf_counter()
result = func(*args, **kwargs)
en = time.perf_counter()
return (en - st, result)
return wrapper
@timed
def fun():
a=2
b=3
c=a+b
timetaken, result = fun()
print("Your program takes: ", timetaken) # 0.0345
start_time = time.сtime()
Не будет. Вычисление end_time надо ниже на строку опустить
2. Первая буква в верхнем регистре99. Получение негативного числа, этот пример будет полезен любителям негатива:
Этот пример используется для превращения каждой первой буквы символов строки в прописную букву. Он работает со строкой из одного или нескольких символов и будет полезен при анализе текста или записи данных в файл и т.п.
def capitalize(String): return String.title() capitalize("shop") # [Shop] capitalize("python programming") # [Python Programming] capitalize("how are you!") # [How Are You!]
def negative(num):
return -num
negative(42) # [-42]
negative(-42)
print(negative(-42)) # [42]
7. Проверка дубликатов
Это самый быстрый способ проверки наличия повторяющихся значений в списке.
def check_duplicate(lst): return len(lst) != len(set(lst)) ...
Есть у меня сомнения по поводу «самый быстрый»
O(n) времени займет, если совсем придираться, то можно и за O(k) написать, где k — индекс первого дубликата, а в теории быстрее, чем за линейное время все равно не напишешь, поэтому чисто технически он все равно самый быстрый
def has_duplicates(lst):
unique = set()
for value in lst:
if value in unique:
return True
unique.add(value)
return False
Так построение сета же N logN, разве нет?
нет, сэт — это словарь, где ключами являются значения из этого сэта, то есть
set('Hello', 'world')
==
s = {
'Hello': True,
'World': True
}
Добавление значения в сет занимает О(1) времени, соотвественно для k элементов это займет O(k) времени
О, а я-то думал, что в питоне set
сделан через деревья.
И тем не менее, для хеш-таблиц вставка является О(1) только в среднем. В худшем случае (если понадобится расширять) вставка будет О(к), где к — количество элементов на данный момент. Не совсем вижу сейчас, как оценить время в таком случаен, но потенциально не О(к).
del. Случайно опубликовалось дважды
Какие-то сомнительные примеры
Не snake case, большинство примеров однострочные
Серьёзно? Документацию по Пайтону надо перепечатывать в виде примеров? А чего бы с азов не начать? Например:
def eq(a, b):
return a == b
— Не соблюдаются правила именования переменных
— Не соблюдаются отступы
— Некоторые из примеров очевидно некорректные
— Для некоторых примеров существуют встроенные решение, и писать своё можно разве что из академического интереса, но никак не выдавать их за «полезные примеры»
%%time
5-й пример не вычисляет время выполнения, он вычисляет время объявления функции
22 бесполезных примера
Просто фейспалм. Читаю, будто туториал от дестадовца.
Особенно проорал с 5 кода. И в правду, зачем нужен встроенный модуль timeto, можно же всё упороть и запороть.
Так и до ; недалеко
22 полезных примера кода на Python