требования к джунам выросли, кол-во откликов от чуваков, прошедших трёхмесячные курсы скиллбокса, просто зашкаливает.Так и рынок взрослеет, раньше программирование было сродни шаманству, в институте учили азам, из учебников - документация, хорошо если на английском, а дальше старшие товарищи тебе объясняли как работает эта большая черная штука с зеленым монитором. Сейчас сфера как раз в том состоянии когда работы много, местами очень много, а работников с уровнем "сел и работает" кот наплакал, а джунов больше учить надо, чем ждать с них профита, так как обучаемость вещь ограниченная, ну и кроме того теперь вместо одной большой черной штуки их целый зоопарк, каждая контора молится на свой большой и черный набор технологий... То есть самый выгодный сотрудник - мифический "твердый мид", уже умеет делать что говорят, но стоит все еще не как сеньор.
надеюсь что к моменту моего 3-4 курса (2026-2027) ситуацию с наймом как минимум не усугубитсяСитуация будет усугубляться с каждым годом, в плане того что спецов так быстро готовить просто не реально, по крайней мере массово, по этому дефицит кадров будет только расти.
from itertools import groupby
from operator import itemgetter
data = [
{'group': 'style', 'name': 'Классика'},
{'group': 'style', 'name': 'Модерн'},
{'group': 'type', 'name': '2-х комнатная квартира'}
]
ig = itemgetter('group')
result = [list(group) for key, group in groupby(sorted(data, key=ig), ig)]
from collections import defaultdict
data = [
{'group': 'style', 'name': 'Классика'},
{'group': 'style', 'name': 'Модерн'},
{'group': 'type', 'name': '2-х комнатная квартира'}
]
result = defaultdict(list)
for item in data:
result[item['group']].append(item)
result = list(result.values())
import string
print([c*i for i,c in enumerate(string.ascii_lowercase,1)])
['a', 'bb', 'ccc', 'dddd', 'eeeee', 'ffffff', 'ggggggg', 'hhhhhhhh', 'iiiiiiiii', 'jjjjjjjjjj', 'kkkkkkkkkkk', 'llllllllllll', 'mmmmmmmmmmmmm', 'nnnnnnnnnnnnnn', 'ooooooooooooooo', 'pppppppppppppppp', 'qqqqqqqqqqqqqqqqq', 'rrrrrrrrrrrrrrrrrr', 'sssssssssssssssssss', 'tttttttttttttttttttt', 'uuuuuuuuuuuuuuuuuuuuu', 'vvvvvvvvvvvvvvvvvvvvvv', 'wwwwwwwwwwwwwwwwwwwwwww', 'xxxxxxxxxxxxxxxxxxxxxxxx', 'yyyyyyyyyyyyyyyyyyyyyyyyy', 'zzzzzzzzzzzzzzzzzzzzzzzzzz']
Значения по умолчанию для аргументов функции вычисляются и
запоминаются в момент выполнения инструкции def, а не при вызове
функции. Внутренняя реализация Python сохраняет по одному объекту для
каждого аргумента со значением по умолчанию, присоединенного к
функции.
Например, следующая функция использует пустой список в качестве
значения по умолчанию своего аргумента, а затем изменяет его при
каждом вызове:
>>> def saver(x=[]): # Объект списка сохраняется ... x.append(1) # При каждом вызове изменяется один и тот же объект! ... print(x) ... >>> saver([2]) # Значение по умолчанию не используется [2, 1] >>> saver() # Используется значение по умолчанию [1] >>> saver() # Список растет при каждом вызове! [1, 1] >>> saver() [1, 1, 1]
Если такое поведение является неприемлемым, можно просто создавать
копию аргумента по умолчанию в начале тела функции или переместить
выражение, возвращающее значение по умолчанию, в тело функции.
Поскольку в этом случае значение по умолчанию будет находиться в
программном коде, который выполняется при каждом вызове функции, вы
всякий раз будете получать новый объект:
>>> def saver(x=None): ... if x is None: # Аргумент отсутствует? ... x = [] # Создать новый список ... x.append(1) # Изменить объект списка ... print(x) ... >>> saver([2]) [2, 1] >>> saver() # Список больше не растет [1] >>> saver() [1]
n = 19
numbers_as_string = '16 11 5 7 15 18 6 13 9 10 14 12 2 19 4 17 3'
numbers = [int(i) for i in numbers_as_string.split(' ')]
all_numbers = set(range(1, n + 1))
numbers = set(numbers)
sorted_diff = [str(i) for i in sorted(all_numbers.difference(numbers))]
print(' '.join(sorted_diff))
sells={
... "Маша":"Samsung 20",
... "Максим":"Iphone 6S",
... "Наташа":"Lenovo Legion"
... }
prices={
... "Samsung 20": 300,
... "Iphone 6S": 260,
... "Lenovo Legion": 450
... }
result = [name for name, tel in sells.items() if prices.get(tel, 999) < 350]
>>> print(result)
['Маша', 'Максим']