我想讓我的程序以25個字母作爲輸入,並將它們放在某種列表中,以便我可以制定可以與另一個字符連接的字母的規則,並從中獲取三個不重疊的字詞。創建矩陣
我所做的是這樣的:
def matris():
matris = [[],[],[],[],[]]
counter = 0
counter2 = 0
counter3 = 0
counter4 = 0
counter5 = 0
while counter !=5:
matris[0].append(raw_input('One letter: '))
counter+=1
while counter2 !=5:
matris[1].append(raw_input('One letter: '))
counter2+=1
while counter3 !=5:
matris[2].append(raw_input('One letter: '))
counter3+=1
while counter4 !=5:
matris[2].append(raw_input('One letter: '))
counter4+=1
while counter5 !=5:
matris[4].append(raw_input('One letter: '))
counter5+=1
return matris
因此,例如,當我運行這一點,問我「一個信」 * 25可以生成一個矩陣看起來像這樣:
matris = [['a', 'g', 'i', 't', 'u']
['s', 'r', 'g', 's', 'm']
['f', 'e', 'd', 'c', 't']
['r', 's', 'i', 'f', 'x']
['t', 'i', 't', 't', 'i']]
如果任何人有更好的方式來做到這一點,我會感謝你,如果你分享它。而且這種方式可以與我希望我的程序執行的操作一致,但我不知道我能夠使用我的版本。
我有我做的東西像dictionary.txt: 字典=開放(「dictionary.txt」,「R」)
,所以我想我會嘗試啓動匹配matris[0][0]+matris[0][1]
,看看是否有一個詞以ie 'a'+'g'
開頭,然後取下一個字母,直到找到允許說出三個最好(最有價值)的單詞。
我猜我需要一個班。因此,這是我已經走了多遠:
Class hypotes:
def __init__ (self, usedPosiiton, word):
self.u = usedPosition
self.w = word
positions = []
bestWords = [] # There should be maximum three words in this list,
# the words with highest score
我認爲我必須保存在數組中的位置,這樣我以後可以確保是最好的話不要使用相同的字母?
猜測我要在這堂課上需要一些幫助。
letterValuePoints = {'A':50, 'B':110, 'C':190, 'D':70, 'E':50, 'F':90,
'G':70, 'H':70, 'I':50, 'J':170, 'K':70, 'L':50,
'M':70, 'N':50, 'O':70, 'P':110, 'R':50, 'S':50,
'T':50, 'U':110, 'V':90, 'X':190, 'Y':170, 'Z':210,
'Å':110, 'Ä':90, 'Ö':110}
我想後來當我想給每個字母的值,我會做這樣的,但我不知道這是否會是一個很好的辦法嗎?
喜後,謝謝快速回復! =) 這是非常漂亮: 進口pprint DEF塊(L,N): 「」 「 」 「。收率連續N大小從升 塊」 爲i的x範圍(0,LEN( l),n): yield l [i:i + n] a = raw_input('some letters:') pprint.pprint(list(chunks(a。分裂(),5))) 但是,必須有一種方法來分割並返回與它的那些帶一個列表?親愛的,謝謝你的光臨! –
看起來非常糟糕,也許我應該修改我的問題insted的.. =/ –
看到你是瑞典! =)在這裏不能發送? 似乎有點難以起牀英文我需要什麼幫助,也許?試圖讓程序有條不紊掃描列表,現在包括的每五個字母五個列表,並設法找到與某個ordlista.txt匹配的單詞。所以我想,也許你應該開始在原地看着列表[0] [0]和list [0] [1],看看字典中的任何單詞的字母,並且如果它繼續列出[0] [2 ]和繼續下去,直到不能匹配任何更多的,然後做相同,但開始provess字母列表[0] [1] .. –