【问题标题】:Combination of betting odds in PythonPython中的投注赔率组合
【发布时间】:2020-04-09 09:41:36
【问题描述】:

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

假设我有一个来自 3 个博彩公司的赔率列表:

bookie1 = [1,2]

bookie2 = [3,4]

bookie3 = [5,6]

然后我有 1 个列表中所有博彩公司的赔率,例如:

bookies_all = [ [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]]

是循环遍历列表的最佳选择吗?

【问题讨论】:

    标签: python list loops combinations


    【解决方案1】:

    我已经对此进行了编码,它为我提供了我需要的所有组合。

    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 列表具有更多值的场景进行测试。

    【讨论】:

    • 欢迎来到本站!将来最好在发布您的问题之前先试一试,然后在您的问题中发布您的代码
    【解决方案2】:

    您可以使用itertools.combinations 查找 bookie 的组合,然后使用列表推导来交错项目:

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

    【讨论】:

      猜你喜欢
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      • 2020-06-20
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      相关资源
      最近更新 更多