【问题标题】:Generating List of All Scrabble Tiles in Python在 Python 中生成所有拼字游戏的列表
【发布时间】:2016-03-05 13:52:36
【问题描述】:

我正在尝试打印您在袋子中找到的所有拼字游戏拼字游戏的列表。我必须使用一个函数,并且我有两个变量,一个用于 LETTERS,另一个用于 COUNT(每个字母的数字图块),当我打印它时,它会打印每个字母 26 次:(

def genRepeatedChars(chars, repeats) :
    tileBag = []
    for LETTERS in allLetters:
       for i in range(len(COUNTS)):
           print (LETTERS)
    return chars

【问题讨论】:

  • 您的代码中似乎有问题。什么是tileBag,为什么不使用它?您的函数正在获取两个参数 charsrepeats 但都没有被使用;取而代之的是两个变量 allLettersCOUNTS 在没有被声明的情况下被使用...
  • 对不起,我应该更清楚,COUNTS 和 allLetters 是在程序开始时定义的全局变量。
  • 那么tileBagcharsrepeats 呢?如果您能分享如何声明 allLettersCOUNTS 也会有所帮助。另外,我仍然认为您在此处输入的代码包含错误,因此请仔细检查以确保您在此处输入正确。

标签: python list function loops


【解决方案1】:

假设您的变量 LETTERSCOUNT列表(这似乎是因为它打印每个字母 26 次),您可以像这样打印它们:

LETTERS = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ')
COUNT = [2, 4, 9, 14, 9, 7, 1, 14, 7, 3, 11, 10, 8, 14, 14, 4, 4, 15, 14, 8, 2, 3, 4, 7, 10, 1]
for letter, count in zip(LETTERS, COUNT):
    print('{}: {}'.format(letter, count))

输出

A: 2
B: 4
C: 9
D: 14
E: 9
F: 7
G: 1
H: 14
I: 7
J: 3
K: 11
L: 10
M: 8
N: 14
O: 14
P: 4
Q: 4
R: 15
S: 14
T: 8
U: 2
V: 3
W: 4
X: 7
Y: 10
Z: 1

如果你想创建一个“瓷砖袋”,你可以这样做:

from collections import Counter
from random import shuffle

tile_bag = list(Counter(dict(zip(LETTERS,COUNT))).elements())
shuffle(tile_bag)

这会给你一袋随机瓷砖。您可以选择一个随机图块:

tile = tile_bag.pop()

【讨论】:

    猜你喜欢
    • 2012-05-02
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多