我正在研究一个字谜程序,其中单词和给定长度的文本文件作为命令参数传递。只应该考虑给定长度的字形。该程序应该只打印最大集合中的单词。如果有几个同样大的集合,则应打印所有集合。我很困惑。 例如: 顷 屁股 耳朵 时代 RASE 烤焦 血清返回集合字典中最长的集合?
import sys
from collections import defaultdict
def main():
try:
if len(sys.argv) > 2:
filename = sys.argv[1]
global length
length = int(sys.argv[2])
wordDict = readFile(filename)
print(wordDict)
except IOError:
print("Error: file not found.")
except NameError:
print("Error: a text file and a length are required.")
def readFile(filename):
inFile = open(filename, "r")
try:
return readData(inFile)
finally:
inFile.close()
def readData(inFile):
wd = defaultdict(set)
for line in inFile:
line = line.strip()
if length == len(line):
wd["".join(sorted(line))].add(line)
j = [k for k, v in wd.items() if len(v)==mx]
return j
main()
你的随机'length'来自'readData'吗? – smac89 2014-10-28 02:20:40
长度来自def main()中长度的命令行参数。我宣布它是全球性的,我知道有更好的方法来做到这一点。 – SolidusZero 2014-10-28 03:35:08
如果您的问题得到解决,请接受答案。否则,什么不工作? – smac89 2014-10-28 03:41:37