【发布时间】:2020-12-16 14:36:24
【问题描述】:
我们受命制作一个洗牌的程序。我对编程还是很陌生,所以这对我来说并不是最简单的任务。我们得到了对 itertools 进行一些研究的提示,所以这就是我所做的。我目前的程序如下:
import itertools
import random
deck = list(itertools.product(range(1,14),['Heart','Spade','Club','Diamond']))
random.shuffle(deck)
print("Order of deck:")
for i in range(52):
print(deck[i][0], "of", deck[i][1])
如果你运行它,你会得到:
Order of deck:
9 of Heart
10 of Diamond
2 of Spade
1 of Heart
11 of Spade
4 of Diamond
10 of Heart
...
如我所愿,你会得到一个洗牌的牌组。
剩下要做的就是将 1 的值更改为“Ace”,将 11 更改为“Jack”,...
但我不知道该怎么做,因为我的列表“牌组”由 52 个项目组成,每张卡都是一个元组。例如
deck[0] = (1, 'Spade')
到目前为止,我学会替换的唯一东西是
deck.replace(1,"Ace")
和
for n, i in enumerate(deck):
if i == 1:
deck[n] = "Ace"
但是这两个都不起作用。 第一个不起作用,因为我的套牌不是字符串,而是列表。 如果我运行第二个没有任何变化,输出与没有那段代码时完全相同。
总而言之,我想在我的小程序中将 1 更改为“Ace”,然后我可以将 11 更改为“Jack”,... (抱歉英语不好,希望一切都清楚)
【问题讨论】:
标签: python python-3.x