これは、xダイスロールのすべての結果を生成する関数を作成しようとしたものです。メイン関数で生成される第1リストは[[1]、[2]、[3]、[4]、[5]、[6]]であり、 。最初の6番目に1を加え、2番目の6番目に2を加えれば、2つ(またはそれ以上)の転がりのすべての結果がリストに表示されます。任意の数のダイスロールのすべての値のpythonリストを生成しようとしています。返されるリスト内の複数のインデックスにそれぞれの値が追加されるのはなぜですか?
#Works for any number of sides on a dice
#Meant to expand the list to include an extra dice. The items needed for 1
#dice is 6, for 2 die is 36, etc.
def replicate(x,y):
new_lst = []
for i in range(y):
for k in x:
new_lst.append(k)
return new_lst
#Specifically for 6 sided die
def table_of_possibilities(x):
or_lst = []
for l in range(6):
or_lst.append([l + 1])
if x > 1:
for k in range(x-1):
lst = replicate(or_lst,6)
length = len(lst)
print(lst)
#This list appears fine, lists of [1],[2],[3],[4],[5],[6] repeated 6 times
for i in range(length):
if i < length/6:
lst[i].append(1)
elif i < length/3:
lst[i].append(2)
elif i < length/2:
lst[i].append(3)
elif i < length * 2/3:
lst[i].append(4)
elif i < length * 5/6:
lst[i].append(5)
else:
lst[i].append(6)
return lst
print(table_of_possibilities(2))
#The final list is the earlier print with 1,2,3,4,5,6 in each list
私はあなたがやろうとしているものは100%わからないが、あなたは 'itertools'、' itertools.product(範囲(1、7を使用して、すべての死ぬのロールを生成することができます)、repeat = x) ' – AChampion
これはあなたがやろうとしていることではありません、返されたリストの各インデックスにそれぞれの青を追加しますか?あなたが何を求めているのかは不明です。あなたは私たちにあなたの期待される出力と、あなたが得ている出力を教えてもらえますか?すなわちMCVE? – toonarmycaptain
このコードは、[[1,1,1,2,3,4,5,6]、[2,1,2,3,4,5,6]、[1,3,1,2,3,4,5,6] 5,6]、[4,1,2,3,4,5,6]、[5,1,2,3,4,5,6]、[6,1,2,3,4,5,6] 6]、[1,1,2,3,4,5,6]、[2,2,1,3,4,5,6]、[3,1,2,3,4,5,6] 、[4,1,2,3,4,5,6]、[5,1,2,3,4,5,6]、[6,1,2,3,4,5,6]、繰り返し私はそれを[1,1]、[2,1]、[3,1]、[4,1]、[5,1]、[6,1]、[1、 2]、[2,2]などがあります。 –