我能够成功地从名为donnes
的列表中添加名为liste_dominos
元素的列表。但是,似乎我在列表中创建了一个额外的级别。
打印donnes
时,而不是输出:
[[[5, 3], [6, 3], [2, 0], [4, 2], [2, 2], [6, 6]]], [[[2, 1], [6, 5], [6, 4], [3, 0], [3, 3], [3, 2]]]
我会得到:
[[[[5, 3], [6, 3], [2, 0], [4, 2], [2, 2], [6, 6]]], [[[2, 1], [6, 5], [6, 4], [3, 0], [3, 3], [3, 2]]]]
因此,如果我得到每个玩家的列表......而不是这个输出:
[[5, 3], [6, 3], [2, 0], [4, 2], [2, 2], [6, 6]]
我会得到:
[[[5, 3], [6, 3], [2, 0], [4, 2], [2, 2], [6, 6]]]
列表donnes
应该按[[],[]]
格式化。每个元素代表一个玩家,并在其子列表中代表他们所拥有的多米诺骨牌列表。
这是代码。
import random
liste_dominos = [[6, 6], [6, 5], [6, 4], [6, 3], [6, 2], [6, 1], [6, 0], [5, 5], [5, 4], [5, 3], [5, 2], [5, 1], [5, 0], [4, 4], [4, 3], [4, 2], [4, 1], [4, 0], [3, 3], [3, 2], [3, 1], [3, 0], [2, 2], [2, 1], [2, 0], [1, 1], [1, 0], [0, 0]]
random.shuffle(liste_dominos)
no_players = 2
if int(no_players) == 2:
donnes = [[] for i in range(int(no_players))]
for x in range(no_players):
donnes[x].append(liste_dominos[:6])
del liste_dominos[:6]
print(donnes[0])
print(donnes[1])
print(donnes)
打印仅用于指示我是否获得正确的结果。我稍后将使用donnes
列表执行其他操作,因此需要以上述格式获取它。
答案 0 :(得分:3)
即使有更好的方法,正在发生的事情是你要将从liste_dominos [:6]返回的内容附加到列表中,这基本上是该范围中包含的元素的列表这是一个事实上[[...],..,[...]]
返回的列表使用extend来追加列表的内部元素可以解决这个问题:
import random
liste_dominos = [[6, 6], [6, 5], [6, 4], [6, 3], [6, 2], [6, 1], [6, 0], [5, 5], [5, 4], [5, 3], [5, 2], [5, 1], [5, 0], [4, 4], [4, 3], [4, 2], [4, 1], [4, 0], [3, 3], [3, 2], [3, 1], [3, 0], [2, 2], [2, 1], [2, 0], [1, 1], [1, 0], [0, 0]]
random.shuffle(liste_dominos)
no_players = 2
if int(no_players) == 2:
donnes = [[] for i in range(int(no_players))]
for x in range(no_players):
# Changed to extend instead of append
# It can be changed to += also
donnes[x].extend(liste_dominos[:6])
del liste_dominos[:6]
print(donnes[0])
> [[1, 0], [6, 5], [4, 3], [5, 2], [6, 3], [5, 5]]
print(donnes[1])
> [[5, 1], [3, 2], [4, 1], [2, 1], [3, 0], [2, 2]]
print(donnes)
> [[[1, 0], [6, 5], [4, 3], [5, 2], [6, 3], [5, 5]], [[5, 1], [3, 2], [4, 1], [2, 1], [3, 0], [2, 2]]]
答案 1 :(得分:1)
当您真正想要append()
时,您正在使用extend()
。
append
:在最后添加对象。
x = [1, 2, 3]
x.append([4, 5])
print (x)
为您提供:[1, 2, 3, [4, 5]]
extend
:通过附加迭代中的元素来扩展列表。
x = [1, 2, 3]
x.extend([4, 5])
print (x)
为您提供:[1, 2, 3, 4, 5]
你想做
donnes[x].extend(liste_dominos[:6])
答案 2 :(得分:0)
使用列表理解
可以更轻松地完成同样的工作.footer-text {
display:inline-block;
vertical-align: top;
font-size: 12px;
list-style-type: none;
}