これは課題のためのものです (ただし、提供された解決策を熟考し、実際にここで何かを学ばなければならないので、完全に頭を悩ませています. Python マニュアル、Daniweb、およびこちらを参照してください。これらの概念を統合する方法がわかりません。
テキストファイルからの入力がたくさんあります(下のようにしましょう)。各行の最初の項目は辞書のキーになり、後の3つの項目はクラス「Fruit」に入ります。ご想像のとおり、物事を説明することになります。
lemon?yellow?sour?not
lemon?yellow?sour?yes
orange?orange?sweet?yes
grape?purple?sweet?yes
このファイルから作成されたキー「レモン」が記述子「黄色の酸っぱい」と「黄色の酸っぱい」をリストとして返すようにしたいと思います。
class Fruit(object):
'''Describes fruits'''
def __init__(self,color,flavor,tasty):
self.color = color
self.flavor = flavor
self.tasty = tasty
def getColor(self): return self.color
def getFlavor(self): return self.flavor
def getTasty(self): return self.tasty
def description(self): return self.color,self.flavor,self.tasty
fruity = {}
for line in inputFile:
n,c,f,t = line.split('?')
indFruit = fruit(c,f,t)
fruity[n] = [fruit.description]
もちろん、ファイルがキー「レモン」を2回押すと、「黄色のサワーではない」が「黄色のサワーである」で上書きされます(つまり、書かれているように、想定されているすべてのことを行っているようです)する。)
だから私はそのレモンの問題を処理する方法に取り組んでいます. 私は試した:
fruity = {}
fruitlist = []
for line in inputFile:
n,c,f,t = line.split('?')
indFruit = fruit(c,f,t)
fruity[n] = fruitlist.append(indFruit)
生産する
{(lemon): none, (orange): none, (grape): none}
その後
fruity = {}
fruitlist = []
for line in inputFile:
n,c,f,t = line.split('?')
indFruit = fruit(c,f,t)
fruitlist.append(indFruit)
fruity[n] = fruitlist
それが生成するので、これは少しやり過ぎです:
{(lemon): [(yellow, sour, not),(yellow,sour,yes),(orange,sweet,yes),(grape,sweet,yes)}
表示することである、私が望むことを行う方法を理解するのに苦労しています:
{(lemon): [(yellow, sour, not),(yellow,sour,yes)], (orange): [(orange, sweet, yes)]}
and so on.
前もって感謝します!