Комбинация коэффициентов ставок в Python - PullRequest
0 голосов
/ 09 апреля 2020

Итак, я новичок в Python, и я решил поработать над проектом, который мне интересен. Я подключился к API, чтобы получать коэффициенты на ставки от разных букмекеров. Я успешно получил данные и сохранил их в базе данных Sqlite3. Следующий шаг - сравнить шансы, и вот здесь я застреваю.

Итак, допустим, у меня есть список шансов для 3 букмекеров:

bookie1 = [1,2 ]

bookie2 = [3,4]

bookie3 = [5,6]

тогда у меня есть коэффициенты из всех букмекеров в 1 списке, например:

bookies_all = [[1,2], [3,4], [5,6]]

Как получить комбинации шансов у 3 букмекеров?

Я ожидаю, что результат будет выглядеть примерно так:

combos = [[1,3], [1,5], [1,4], [1,6], [2,3], [ 2,5], [2,4], [2,6], [3,5], [3,6], [4,5], [4,6]]

Является лучшим вариант l oop через список?

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

Вы можете использовать itertools.combinations, чтобы найти комбинации букмекеров, а затем использовать понимание списка, чтобы чередовать элементы:

from itertools import combinations

bookies_all = [[1, 2], [3, 4], [5, 6]]

all_comb = list(combinations(bookies_all, 2))
#print(all_comb)

combos = [[i, j] for c in all_comb for i in c[0] for j in c[1]]
print(combos)

Вывод:

[[1, 3], [1, 4], [2, 3], [2, 4], [1, 5], [1, 6], [2, 5], [2, 6], [3, 5], [3, 6], [4, 5], [4, 6]]
0 голосов
/ 09 апреля 2020

Я закодировал это, и он дает мне все необходимые комбинации.

bookies_all = [[1, 2], [3, 4], [5, 6]]
combos = []

count = 0
for outer in bookies_all:
    for inner in bookies_all:
        temp_list = [outer[0], inner[1]]
        count += 1
        combos.append(temp_list)

print(combos)

Вывод: [[1, 2], [1, 4] , [1, 6] , [3, 2] , [3, 4], [3, 6] , [5, 2] , [5, 4] , [5, 6]]

Я хочу комбинации, выделенные жирным шрифтом. Этот код работает для этого примера.

Я протестирую его для сценария ios, где список bookies_all имеет больше значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...