我如何做到这一点,但是骰子数量却可变?这意味着all_dices
可以有任意长度。
for first_dice_number in all_dices[0]:
for second_dice_number in all_dices[1]:
for thrird_dice_number in all_dices[2]:
result = first_dice_number+second_dice_number+thrird_dice_number
results.append(result)
为澄清起见,all_dices
如下:
[[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6]]
这很可能是一个菜鸟问题,但我无法弄清楚。
问题是我不想互相放置100个for
循环。
答案 0 :(得分:4)
您需要一组值的(笛卡尔)乘积。
var result= JsonConvert.DeserializeObject<Rootobject>(data);
例如:
Range col1 = ws.UsedRange.Columns[1];
Range col2 = ws.UsedRange.Columns[2];
System.Array col1values = (System.Array)col1.Cells.Value;
System.Array col2values = (System.Array)col2.Cells.Value;
string[] col1Array = col1values.OfType<object>().Select(o => o.ToString()).ToArray();
string[] col2Array = col2values.OfType<object>().Select(o => o.ToString()).ToArray();
textBox2.Text = String.Join(",", col1Array);
textBox2.AppendText("\n");
textBox2.Text = String.Join(",", col2Array);
答案 1 :(得分:0)
针对这些事情进行递归,将一个循环放入一个函数中,并不断调用自己直到没有骰子为止
{{1}}
我对python的了解不是很好,但这就是主意
答案 2 :(得分:0)
networkApi.getUserList
解决方案可能是Python中最好的解决方案,但是处理骰子的另一种方法是考虑将itertools
骰子的可能掷骰数从0计为6的n ^ -1 -1 (但使用“数字” 1到6而不是0到5):
n
例如,def decode(dice_code, num_dice):
dice = []
for _ in range(num_dice):
dice_code,r = divmod(dice_code,6)
dice.append(1+r)
return dice
是decode(0,5)
,而[1,1,1,1,1]
是decode(7775,5)
。只需循环[6,6,6,6,6]
,然后根据需要进行解码即可。