
Whore Amazing
04.12.2016
13:07:54
НЕ ПАР
шестерок

Zart
04.12.2016
13:08:03
чо

Igor
04.12.2016
13:08:08
ну в примере выше как раз шестерки

Google

Igor
04.12.2016
13:08:09
не?
ну, 3 по 2
ниче не мешает пройтись и склеить их в один

Zart
04.12.2016
13:08:34
задачу внятно сформулируй

Igor
04.12.2016
13:08:43
+, я тож не понял :( переживаю что еще больше запутываю

Whore Amazing
04.12.2016
13:08:44

Zart
04.12.2016
13:08:50
даны списки abcdef и 123
что надо получить?

Whore Amazing
04.12.2016
13:08:52
совсем

Zart
04.12.2016
13:10:41

Whore Amazing
04.12.2016
13:12:01
In [15]: a = ['a', 'b', 'c']
In [16]: b = [1, 2, 3, 4]
In [17]: [zip(x, a) for x in itertools.permutations(b, len(a))]
Out[17]:
[[(1, 'a'), (2, 'b'), (3, 'c')],
[(1, 'a'), (2, 'b'), (4, 'c')],
[(1, 'a'), (3, 'b'), (2, 'c')],
чет у меня пустой список выдает
import itertools
li1 = ['0', '1', '2', '3', '4', '5', '6','7', '8', '9', '10', 'A', 'J', 'K', 'Q']
li2 = ['s', 'S', 'd', 'D', 'h', 'H' ,'c', 'C']
lif = [zip(x, li1) for x in itertools.permutations(li2, len(li1))]
print(lif)
код вроде такой же(

Google

Igor
04.12.2016
13:13:30
он работает ток если li1 меньше* li2
над еще проверку делать
может, есть способ эффективнее, я хз:(
itertools.product вон например

Whore Amazing
04.12.2016
13:13:59
а, ща переставлю

Igor
04.12.2016
13:14:20
In [19]: a
Out[19]: ['a', 'b', 'c']
In [20]: b
Out[20]: [1, 2, 3, 4]
In [22]: list(itertools.product(a, b))
Out[22]:
[('a', 1),
('a', 2),
('a', 3),
('a', 4),
('b', 1),
('b', 2),
('b', 3),
('b', 4),
('c', 1),
('c', 2),
('c', 3),
('c', 4)]
но он парами

Varya
04.12.2016
13:14:55
s=[ a1 + a2 for a1 in [ 'x1', 'x2', 'x3'] for a2 in ['y1', 'y2', y3] ]
print(s)

Zart
04.12.2016
13:15:12
мне нравится как люди решают задачу с неизвестными условиями
аджайл, йопт

Igor
04.12.2016
13:15:47
слушай, ну в рабочей среде такое тоже часто случается %))
дай бог если ТЗ есть или грамотно описанная задача в джире %))

Zart
04.12.2016
13:16:31
хочу x1, y1, x2, y2
дано abcdeft и 456789
и все дружно бросились выкладывать из букв "Ж", "О", "П" и "А" слово "ВЕЧНОСТЬ"

Igor
04.12.2016
13:17:52
СЧАСТЬЕ*
http://www.netlore.ru/upload/files/1846/1.gif

Zart
04.12.2016
13:18:58
СЧАСТЬЕ*
т.е. ты ща сам поменял ТЗ на то, которое тебе больше нравится, да?

Igor
04.12.2016
13:19:03
да!

Whore Amazing
04.12.2016
13:19:05
надо не парами

Zart
04.12.2016
13:19:29
а заказачик ООО "Снежная Королева" хотело "ВЕЧНОСТЬ"

Google

Igor
04.12.2016
13:19:57

Zart
04.12.2016
13:19:58
надо не парами
а тебе вообще надо сделать шестерку из списка длиной в 4

Igor
04.12.2016
13:20:29
ах, понял тебя

Whore Amazing
04.12.2016
13:21:53
а результат - шестерка, точнее тройка пар

Zart
04.12.2016
13:22:34
короче если 1 список [a, b, c] и второй [1, 2, 3, 4] то итоговые нужны вида [[a, 1], [a, 2], [a, 3], [a, 4], [b, 1], b, 2]...]
это было декартово произведение, блядь

Whore Amazing
04.12.2016
13:22:52
извиняюсь

Zart
04.12.2016
13:23:12
itertools.product который
но тебе нужна группировка похоже

Whore Amazing
04.12.2016
13:23:52
да, наверное

Whore Amazing
04.12.2016
13:24:00
еще комп тупит, ужасно извиняюсь

Igor
04.12.2016
13:24:01
ну вот тройка пар с помощью zip и permutations реализуется вроде норм

Whore Amazing
04.12.2016
13:24:17

Zart
04.12.2016
13:24:50
[[(e1, e2) for e2 in list2] for e1 in list1] # по-моему просто и наглядно и без итертулзов

Whore Amazing
04.12.2016
13:25:23
блин, щас попробую еще раз объяснить

Igor
04.12.2016
13:25:36
да. если будет два списка длиной по 4 элемента, то на выходе будет 24 (вроде) комбинации списков по 4 кортежа

Zart
04.12.2016
13:26:22
пермутации индексов?

Google

Zart
04.12.2016
13:26:30
или рядов..

Whore Amazing
04.12.2016
13:26:43

Zart
04.12.2016
13:26:45
короче вместо перебора по списку нужен перебор по его перестановкам
*помигал*
пойду в проститутки

Igor
04.12.2016
13:27:08
ох ебать
тогда да, группировать еще как-то

Whore Amazing
04.12.2016
13:28:33
import itertools
li1 = ['0', '1', '2', '3', '4', '5', '6','7', '8', '9', '10', 'A', 'J', 'K', 'Q']
li2 = ['s', 'S', 'd', 'D', 'h', 'H' ,'c', 'C']
lif = [zip(x, li1) for x in itertools.permutations(li2, len(li1))]
print(lif)
списки я скинул вот
пример того что должно быть в ответе:
[[('0', 's'), ('6', 'H'), ('4', 'd')], [('3', 'C'), ('8', 's'), ('2', 's')]...],

Igor
04.12.2016
13:28:34
хотя собственно
вроде бы ничего не мешает в permutations вторым аргументом задать 3?
In [39]: li1 = ['0', '1', '2', '3', '4', '5', '6','7', '8', '9', '10', 'A', 'J', 'K', 'Q']
...: li2 = ['s', 'S', 'd', 'D', 'h', 'H' ,'c', 'C']
...: lif = [zip(x, li2) for x in itertools.permutations(li1, 3)]
...:
In [40]: lif
Out[40]:
[[('0', 's'), ('1', 'S'), ('2', 'd')],
[('0', 's'), ('1', 'S'), ('3', 'd')],
[('0', 's'), ('1', 'S'), ('4', 'd')],
[('0', 's'), ('1', 'S'), ('5', 'd')],
[('0', 's'), ('1', 'S'), ('6', 'd')],
...

Admin
ERROR: S client not available

Whore Amazing
04.12.2016
13:30:45
вот вроде бы то что надо
но на вывод подает не кортежи, а <zip object>))

Igor
04.12.2016
13:31:08
ну list(zip(x, li2))
или если хоечшь кортежи, то tuple(zip(..))

Whore Amazing
04.12.2016
13:31:17
ага, уже сделал
а это точно все возможные варианты?

Igor
04.12.2016
13:33:15
>permutations(p[, r])
> r-length tuples, all possible orderings, no repeated elements

Whore Amazing
04.12.2016
13:33:58
спасибо всем
огромное
еще раз извиняюсь за свой тупизм

Varya
04.12.2016
13:46:25
посоветуйте, пожалуйста, хороший задачник

Johnnie
04.12.2016
13:50:03
https://github.com/sloria/cookiecutter-flask норм вот такую штуку взять за основу? или лучше с нуля все делать?

Igor
04.12.2016
13:52:37

Google

Whore Amazing
04.12.2016
13:52:50
да, так и надо

Igor
04.12.2016
13:52:54
т.е. исключаются варианты, когда ('s', '0'), например
тогда ок)

Zart
04.12.2016
13:53:21

Igor
04.12.2016
13:53:53
ладно-ладно

Whore Amazing
04.12.2016
13:55:15
ладно-ладно
я уже признал, что я идиот
а вот если сайт блочит запросы после n одинаковых подряд
time.sleep(5) после каждого запроса решит проблему?
или кто может решал эту проблему с bit.ly

Igor
04.12.2016
14:07:01
хз, имеет смысл почитать их условия использования
ты через api обращаешься?
https://dev.bitly.com/rate_limiting.html
> If you are experiencing rate limiting errors, please wait 60 minutes to resume making API calls.
%))

Whore Amazing
04.12.2016
14:08:07

Igor
04.12.2016
14:08:09
в целом time.sleep(5) может спасти, но если начал отдавать что рейт лимит иксидед, то лучше таки подождать часик
юзер-агента еще поменяй на нормальный, может поможет

Whore Amazing
04.12.2016
14:08:46
он несколько десятков проходит
а потом блочит
или сотен, хз

Igor
04.12.2016
14:09:04
requests.get(url, headers={'User-Agent': 'мозилла 5.0 хромсафарифаерфокс v666'}
нуу, здесь метод проб и ошибок и/или гугл в поисках людей, кто с этим уже сталкивался и описал

Whore Amazing
04.12.2016
14:09:29

Igor
04.12.2016
14:09:39
нет канеш

Whore Amazing
04.12.2016
14:10:12
да ща найду
Эта группа больше не существует