
Zart
01.10.2016
23:25:28
ээ
кек у тебя содержит список туплов слово-колво

b0g3r
01.10.2016
23:26:08
второй цикл по j лишний)

Zart
01.10.2016
23:26:12
for j in i - дебильно-то как

Google

Zart
01.10.2016
23:26:29
for word, count in kek: # ты хочешь это
у тебя j равен то слову, то числу

Темный
01.10.2016
23:26:50

Zart
01.10.2016
23:27:21
kek = [('word', 10), ('fuck', 9), ('you', 8)]
первый цикл перебирает
i = 'word', 10
i = 'fuck', 9
i = 'you', 8

Темный
01.10.2016
23:28:02
да, дошло

Zart
01.10.2016
23:28:14
второй:
первый цикл перебирает
i = 'word', 10
j = 'word'
j = 10
i = 'fuck', 9
...
а потом ты делаешь 10[0]
да, будешь своё говно пейсать, не забывай про случаи когда в топ10 будет меньше 10 слов

Темный
01.10.2016
23:31:08
не, тут конкретно вывести 10
это задачки из нового модного devman

V
02.10.2016
02:03:24

Zart
02.10.2016
07:16:15

Google

Zart
02.10.2016
07:17:31
ни в 3, ни в 2. достаточно посмотреть коды

Igor
02.10.2016
07:23:13

Stanislav
02.10.2016
07:28:22

Igor
02.10.2016
07:30:08

Zart
02.10.2016
07:30:19
>>> ord(u'а'), ord(u'я'), ord(u'ё')
(1072, 1103, 1105)
1105 не попадает в интервал 1072-1103

Igor
02.10.2016
07:30:36
возможно, потому, что ё в юникодной таблице реально на другом месте
угу

Stanislav
02.10.2016
07:31:58
Тогда писать [а-ё]
А какой символ у 1104

Zart
02.10.2016
07:34:06
хуевое предложение, короче
вон выше линк на блок кириллицы

Stanislav
02.10.2016
07:35:00
Я скинул?

Zart
02.10.2016
07:35:16
найди там ё и Ё и сделай выводы

Stanislav
02.10.2016
07:35:56
Я от фонаря

Zart
02.10.2016
07:36:25
вопрос в общем что нужно - кириллицу вообще, или подмножество только русского
0400 = 1024

Stanislav
02.10.2016
07:37:01
А бля

Google

Zart
02.10.2016
07:37:02
шестнадцатиричная же

Stanislav
02.10.2016
07:37:09
Это же 10-16
Тогда да

melancholiac
02.10.2016
10:29:22
есть в питоне продукт?
product([1,2,3,4])=24
именно встроенный?

Zart
02.10.2016
10:29:59
это не продукт...
>>> math.factorial(4)
24

melancholiac
02.10.2016
10:30:37

Zart
02.10.2016
10:30:48
стоп. тебе надо перемножить все числа?

melancholiac
02.10.2016
10:30:50
а ежели
[2,2,6,8,13]
ну офк можно редусом
ток это некрасиво

Zart
02.10.2016
10:31:13
reduce(operator.mul, x)
почему некрасиво?

melancholiac
02.10.2016
10:31:44
ВОТ

Zart
02.10.2016
10:31:49
редьюс это как раз про A1 op A2 op A3 op A4

melancholiac
02.10.2016
10:31:50
operator.mul
я просто думал о редусе с лямбдой

Google

melancholiac
02.10.2016
10:32:33

Zart
02.10.2016
10:33:06
>>> from functools import reduce
>>> from operator import mul
>>> reduce(mul, [2, 2, 6, 8, 13])
2496

John
02.10.2016
10:49:43
Привет! Никто не сталкивался с тем, что map дольше работает чем использование функции на том же наборе данных в цикле for.

Igor
02.10.2016
10:57:00

John
02.10.2016
10:57:50

Igor
02.10.2016
10:59:46
интересно :о а замеряешь как? timeit должен быть точнее
(я не знаю почему так, просто интересно)

Zart
02.10.2016
11:00:56
потому что мэп собирает результаты
а фор нет

Igor
02.10.2016
11:01:11
блин, логично

Zart
02.10.2016
11:01:55
вообще мэп в среднем по палате должен выигрывать
потому что дольше времени проводит в си

John
02.10.2016
11:02:30
Неа

Zart
02.10.2016
11:02:55
результаты профилирования в студию

John
02.10.2016
11:02:59
В цикле я сам собираю результаты в лист
Типа bar.appebd
Не под рукой

Igor
02.10.2016
11:04:40
а чё не list comprehension тогда?

Zart
02.10.2016
11:06:37
D:\>py -mtimeit -s "r=[]; f=lambda x:x+1" "for i in range(10000): r.append(f(i))"
1000 loops, best of 3: 1.88 msec per loop
D:\>py -mtimeit -s "r=[]; f=lambda x:x+1" "for i in range(10000): r.append(f(i))"
1000 loops, best of 3: 1.87 msec per loop
D:\>py -mtimeit -s "f=lambda x:x+1" "r=list(map(f, range(10000)))"
1000 loops, best of 3: 1.22 msec per loop
D:\>py -mtimeit -s "f=lambda x:x+1" "r=list(map(f, range(10000)))"
1000 loops, best of 3: 1.22 msec per loop
D:\>py -mtimeit -s "f=lambda x:x+1" "r=[f(x) for x in range(10000)]"
1000 loops, best of 3: 1.34 msec per loop
D:\>py -mtimeit -s "f=lambda x:x+1" "r=[f(x) for x in range(10000)]"
1000 loops, best of 3: 1.21 msec per loop
не очень репрезентативно, но в целом мап шустрее обычно

John
02.10.2016
11:07:00
Я все три года был уверен что мэп быстрее пока случайно не посчитал примитивно oldatime -time.now

Google

Zart
02.10.2016
11:07:04
но надо мерять конкретный случай чтобы сказать наверняка
правильно замерять - тоже уметь надо

John
02.10.2016
11:08:54
Я думаю, что в случае с примером с числами...не то

Zart
02.10.2016
11:09:36
хз, версия питона тоже роль играет
ибо в двойке мап возвращает честный лист, а в тройке - итератор

John
02.10.2016
11:10:09
Да я знаю

Zart
02.10.2016
11:10:31
если исходить из того что тело цикла/функции будет работать с одинаковой скоростью, то в целом накладные расходы мапа должны быть чуть-чуть ниже
но на фоне основного тела вообще мизер должен быть
если же у тебя радикально разные результаты - то хотелось бы увидеть код
и замеры не через time.now, а timeit.default_timer

Igor
02.10.2016
11:12:37

John
02.10.2016
11:12:37
Ок. Попробую timeit
Просто проект разрастается... и только сели немного его отрефакторить...стали уже считать время

Zart
02.10.2016
11:15:12
timeit делает несколько интересных вещей:
1) выбирает разные функции времени в зависимости от платформы (у них разная точность - time.time/time.clock)
2) выключает сборку мусора на время замера (это позволяет не искажать результаты, зато приводит к некислым расходам памяти)
3) вызывает через ексек для нивелирования вызовов собственно профилера

melancholiac
02.10.2016
11:29:25
dict.values() будут возвращены по порядку?

Denis
02.10.2016
11:30:20

melancholiac
02.10.2016
11:30:22
т.е. есть дикт
a={0:'a',1:'b'}
list(a.values()) всегда будут распологатся по порядку возрастания их ключей?

Denis
02.10.2016
11:30:39
В словаре ключи не в порядке возрастания идут

Zart
02.10.2016
11:32:28
а с каких пор values стали ключами? 8)))

melancholiac
02.10.2016
11:32:38
окей тогда вопрос
если у меня в словаре ключи - 0..n
как мне вернуть лист в котором в позиции ключа будет соответствующее значение?
Эта группа больше не существует