如何创建列表的元组集合



我想算出总和大于7的三个骰子的所有排列。

这仍是一项正在进行的工作,但计算集合的努力还不起作用。

import pandas as pd
import random
count = 0 
digits = [roll for roll in range(1,7)]
digits
digits_all = [random.sample(digits, 2) for d in digits]
def dice_role(r = digits_all):
count =0 
digits_all_roll_1 = r
digits_all_roll_2 = r
digits_all_roll_3 = r
#return digits_all_roll_1, digits_all_roll_2, digits_all_roll_3
data = []
for d in digits_all_roll_1:
data.append(tuple(d))   
for e in digits_all_roll_2:
data.append(tuple(e))
for f in digits_all_roll_3:
data.append(tuple(f))
return data
results = dice_role()
结果

[(3, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(6, 5),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(5, 2),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(5, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(6, 5),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(2, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(3, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(6, 5),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(5, 2),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(5, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(6, 5),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(2, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(3, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(6, 5),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(5, 2),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(5, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(6, 5),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(2, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(3, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(6, 5),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(5, 2),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(5, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(6, 5),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(2, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(3, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(6, 5),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(5, 2),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(5, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(6, 5),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(2, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(3, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(6, 5),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(5, 2),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(5, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(6, 5),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1),
(2, 1),
(3, 1),
(6, 5),
(5, 2),
(5, 1),
(6, 5),
(2, 1)]
)
1

接下来我可以尝试什么?

如果我理解正确的话,你可以这样做:

from itertools import combinations_with_replacement as CWR
result = {t for t in CWR(range(1, 7), 3) if sum(t) > 7}
print(result)

输出:

{(3, 5, 6), (1, 6, 6), (2, 2, 5), (4, 4, 4), (1, 2, 5), (4, 5, 6), (3, 3, 5), (1, 3, 6), (3, 4, 4), (1, 4, 5), (5, 5, 6), (2, 4, 5), (2, 3, 3), (2, 3, 6), (1, 1, 6), (1, 5, 6), (2, 2, 4), (3, 5, 5), (4, 4, 6), (4, 5, 5), (2, 5, 6), (4, 6, 6), (6, 6, 6), (1, 4, 4), (5, 5, 5), (3, 4, 6), (3, 3, 4), (1, 3, 5), (3, 6, 6), (2, 3, 5), (2, 4, 4), (1, 5, 5), (5, 6, 6), (2, 2, 6), (2, 5, 5), (1, 2, 6), (2, 6, 6), (4, 4, 5), (1, 4, 6), (1, 3, 4), (3, 3, 3), (3, 3, 6), (3, 4, 5), (2, 3, 4), (2, 4, 6)}

最新更新