TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #66 · 10 апр.

Как разделить один список на два по определённому признаку элементов? Самый очевидный способ выглядит так: array = [1, 2, 3, 4, 5, 6, 7, 8, 9] even, odd = [], [] for item in array: if item%2: odd.append(item) else: even.append(item) Смотрим что получается >>> odd [1, 3, 5, 7, 9] >>> even [2, 4, 6, 8] А теперь способ в одну строку! (ну кто бы сомневался😂) _ = [[even.append, odd.append][x%2](x) for x in array] Я специально сохранил результат в переменную "_", так как этот результат нам не нужен. Вся магия происходит во время выполнения генератора списка. Выражение x%2 возвращает нам 1 или 0, что является индексом списка [even.append, odd.append]. Таким образом происходит выбор метода append() для нужного списка и сразу после этого мы вызываем его, отправляя очередной элемент в выбранный список. Точно так же в выражение можно ставить сравнение, которое вернёт bool. Ведь вы помните, что bool это производный тип от int, а значит True это 1 а False это 0. >>> arr = [100, 200] >>> print(arr[True]) 200 >>> print(arr[False]) 100 В нашем случае можно сделать так more, less = [], [] [[less.append, more.append][x>5](x) for x in array] Можно даже никуда не сохранять результат, всё равно то что нам нужно произойдет. >>> print(more, less) [6, 7, 8, 9], [1, 2, 3, 4, 5] #tricks

Hashtags

Резултати

Пронајдени 1 слични објави

Глобално пребарување

sudo recast

@sudo_recast · Post #918 · 17.04.2025 г., 09:47

A useful command when you encounter conflicts while cherry-picking: tig HEAD $(git rev-parse CHERRY_PICK_HEAD 2>/dev/null) -- $(git diff --name-only --diff-filter=U | head -1) #tricks@sudo_recast

Hashtags