Python中的赌注组合

2024-06-24 12:58:58 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我是Python新手,我决定从事一个我感兴趣的项目。我已连接到一个API,以从不同的赌博公司获取下注赔率。我已成功获取数据并存储在Sqlite3数据库中。下一步是比较赔率,这就是我陷入困境的地方

假设我有一份来自3家赌博公司的赔率列表:

bookie1=[1,2]

bookie2=[3,4]

bookie3=[5,6]

然后我得到了1个列表中所有赌注的赔率,例如:

博彩公司所有=[[1,2]、[3,4]、[5,6]]

我如何从3家赌博公司获得赔率组合

我希望输出如下所示:

组合=[[1,3]、[1,5]、[1,4]、[1,6]、[2,3]、[2,5]、[2,4]、[2,6]、[3,5]、[3,6]、[4,5]、[4,6]]

循环浏览列表的最佳选项是什么


Tags: 项目api数据库列表选项地方公司sqlite3
2条回答

我已经把它编好了,它给了我所有需要的组合

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]]

粗体的组合就是我想要的。此代码适用于此示例

我将针对bookies_all列表具有更多值的场景进行测试

您可以使用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]]

相关问题 更多 >