
Zart
30.01.2019
08:49:22
а, мы её разбирали еще хз когда

Valerа
30.01.2019
08:49:43
>>> x = [True, False, False, True, False]
>>> sum(x)
2
?
Ну это не совсем решает задачу, у тебя по итогу нет отсорченного массива, а с учётом того что чтобы его получить тебе нужно еще пройтись по массиву и заменить на фолсе в лвеой части и на тру в правой не думаю что там будет большая разница, но решение симпатичное

Ilgiz
30.01.2019
08:50:16

El Mariachi
30.01.2019
08:50:19

Google

Boris
30.01.2019
08:51:32

Zart
30.01.2019
08:51:49
l = [True, False, False, True, ...]
c = sum(l)
l[:-c], l[-c:] = [False] * (len(l) - c), [True]*c
"сортирует" по месту

Boris
30.01.2019
08:52:14
предполагается, что зная идею, кодерок может реализацию уж написать как-нибудь

Valerа
30.01.2019
08:53:10

Anton
30.01.2019
08:53:45

Valerа
30.01.2019
08:54:45
"сортирует" по месту
Разве не сначала будет созданы массивы, а потом просто заменен оригинал? Ну то есть нам все равно нужно О(н) доп памяти

Zart
30.01.2019
08:55:09
ну [False]* можно заменить генераторным выражением...

Boris
30.01.2019
08:55:14
для любых случаев если что)

Zart
30.01.2019
08:55:45
l[:] = (i > c for i in range(len(l)))

Alex
30.01.2019
08:56:14
> сложность алгоритма тут константа и равна N.
WUT?

Google

Valerа
30.01.2019
08:57:40

Zart
30.01.2019
08:59:23
>>> l = [False, True, False, True, True, False, False, True, True]
>>> c = len(l) - sum(l)
>>> l[:] = map(c.__le__, range(len(l)))
>>> l
[False, False, False, False, True, True, True, True, True]
>>>
самое шустрое что в голову приходит

Boris
30.01.2019
09:07:27
в худшем и лучшем случае, сортировка этого массива равна N.

Alex
30.01.2019
09:08:12

Valerа
30.01.2019
09:09:29
Или просто какое то число?

Zart
30.01.2019
09:09:56
это биг о

Valerа
30.01.2019
09:10:15
это биг о
Если это биг о то о какой константе может идти речь

Boris
30.01.2019
09:11:30
константность алгоритма в том, что не важно как в нем лежат объекты. лучший, средний и худший случай сортируются за N итераций, где N длинна массива.

Valerа
30.01.2019
09:12:44

Ilgiz
30.01.2019
09:12:59
"Хороша" в том смысле что O() показывает самый худший вариант, а в этом примере это и худший и лучший вариант.

Alex
30.01.2019
09:14:38

Boris
30.01.2019
09:14:41
На питоне?
где угодно. алгоритм не зависит от языка. когда мы сортируем объекты с признаком булевым, уже не получиться sum сделать. значит мы уже работаем в области свойственной любой платформе.
кодерок на java решил задачку за 15 минут)

Alex
30.01.2019
09:15:10
Big-O это вехний предел

Anton
30.01.2019
09:22:46

Zart
30.01.2019
09:23:16
линейность

Valerа
30.01.2019
09:24:38
Это за одну итерацию будет

Google

Boris
30.01.2019
09:26:27
счетчик указывает на начало чего?

Valerа
30.01.2019
09:26:45
Ну в самом начале он равен 0
Ну или 1 если в паскале)

Boris
30.01.2019
09:27:38
ну да это сортировка пузырьком с индексом, места куда нужно свап сделать.
особенность пузыря с булеанами, что ненужно перемещаться влево после свапа.
задачка хорша тем, что мы узнаем знает ли человек о генераторах, о том что такое булеан в питоне, что sum быстрее итерации по массиву и почему, о том, что есть алгоритмы и о том что иногда и пузырь стреляет.

Valerа
30.01.2019
09:30:01
kek = 0
for i in range(len(a)):
if not a[i]:
a[i], a[kek] = a[kek], False
kek += 1

Boris
30.01.2019
09:30:55
но статистика выборки показала, что 30% не способны додуматься были до идеи о том, что вообше булеаны можно подсчитать, 30% не знают про sum, а только треть может решить все кондишены целиком.
но она ничего не говорит о том, как он пишет код. А именно за этим нас и нанимают.

Valerа
30.01.2019
09:32:20

Boris
30.01.2019
09:35:02
хз. я не знал.

Valerа
30.01.2019
09:35:09

Boris
30.01.2019
09:35:39
именно про это статья. задача статьи не в том, чтобы самобичевание устраивать, а в том, чтобы иметь право на незнание чего-либо.
потому что те кого я нанимал - я нанимал случайным образом и мне повезло, что они были умнее меня. впрочем это мог бы быть кто угодно -)

Valerа
30.01.2019
09:37:49
хз. я не знал.
d = {True: "g", False: "f", 1: "s", 0: "h", }
print(d)
Что выведет?) (Без учета порядка)

Boris
30.01.2019
09:39:16
{1: "s", 0: "h"}

Valerа
30.01.2019
09:39:36

Google

Valerа
30.01.2019
09:40:04
Ну то есть true и false
Вообще довольно специфичное поведение, надеюсь никто так не пишет

Boris
30.01.2019
09:40:57
оно не специфичное, а объяснимое. просто это все еще ни о чем не говорит.

Petr
30.01.2019
09:41:08

Boris
30.01.2019
09:41:35
вот скажем история с работы - вчерашняя. человек написал не работающий код, сделал мердж реквест и сказал "давайте лайки", чтобы смержить в мастер
и сказал что заведет дефект, чтобы исправить свой код который не работает сразу следующим мердж реквестом.

Valerа
30.01.2019
09:42:06
ожидаемое
Я знаю, под специфичным я подразумеваю, что для кого то оно может быть неожиданным

Admin
ERROR: S client not available

Boris
30.01.2019
09:42:08
тимлид с 10 летним стажем.
как мне любая задача может помочь ненаять его?
если че про гитфлоу он меня спрашивал на собеседовании. я себе лицо ушиб вчера фейспалмом.

stonepig
30.01.2019
09:45:10

Boris
30.01.2019
09:46:10
ну я на всякий случай, лайки он уже требовал когда ему объяснили почему код не работает. но он все равно собирался его мержить.

stonepig
30.01.2019
09:46:40
давайте вмержим, а я потом еще пофикшу, вот заебись активность создам!

Boris
30.01.2019
09:47:08
еще и таску для дефекта в жире заебеню, ага.

El Mariachi
30.01.2019
10:14:52

Zart
30.01.2019
10:17:35
https://docs.python.org/3/library/stdtypes.html#boolean-values
"they behave like the integers 0 and 1, respectively"

El Mariachi
30.01.2019
10:17:57

Milton
30.01.2019
16:27:26

Google

Саша
30.01.2019
16:27:48
У тебя всё красное.

Milton
30.01.2019
16:28:03

Behruz
30.01.2019
16:34:05
привествую народ, почему запускаю код, после ввода сразу сбрасывает? можете сказать почему

Vladimir
30.01.2019
16:34:15
Нет.

Behruz
30.01.2019
16:34:17
str = input("ENTER ARRAY: ")
s = (list(str.split()))
print(s)
if len(s) < 1:
print ("PUSTOY MASSIV")
raise SystemExit
k = 1
for i in range(1, len(s)):
if(s[i] != s[i - 1]):
k += 1
print("kol=",k)

Milton
30.01.2019
16:34:24

Petr
30.01.2019
16:34:45

Oleg
30.01.2019
16:34:48
PUSTOY MASSIV

Behruz
30.01.2019
16:35:22
но я пока начинающий ?

Маришка
30.01.2019
16:35:29

Behruz
30.01.2019
16:35:52
аа соррян, для моего уровня не подскажите

Petr
30.01.2019
16:35:59
if s[i] != s[i-1]
....

Маришка
30.01.2019
16:36:17

Milton
30.01.2019
16:36:21

Petr
30.01.2019
16:36:45
Ат идиницы
это проверка на уникальность значений же

Николай
30.01.2019
16:37:10

Behruz
30.01.2019
16:37:16
ок, пока, извиняюсь что забрел на гуру чат

Petr
30.01.2019
16:37:43

Milton
30.01.2019
16:38:25