我有一個由多行組成的字符串,每行包含一個鍵和一個對象的2個屬性的2個值。我想將它們加載到字典中,並且字符串位於txt文件中。 我能夠儘量只去爲定義的函數:python - 用字符串填充字典
def load_a_string(self, thestring):
這裏是字符串的樣子在txt文件(我想要的字符串開始於第四行):
noir
False
None
((3, 0), 'blanc', 'pion')
((5, 4), 'blanc', 'pion')
((2, 1), 'noir', 'pion')
((2, 5), 'noir', 'pion')
((7, 2), 'blanc', 'pion')
((1, 2), 'noir', 'pion')
((6, 7), 'blanc', 'pion')
((7, 6), 'blanc', 'pion')
((6, 3), 'blanc', 'pion')
((5, 6), 'blanc', 'pion')
((5, 0), 'noir', 'pion')
((0, 1), 'noir', 'pion')
((3, 2), 'blanc', 'pion')
((2, 3), 'noir', 'pion')
((0, 7), 'noir', 'pion')
((1, 0), 'noir', 'pion')
((6, 5), 'blanc', 'pion')
((2, 7), 'noir', 'pion')
((7, 0), 'blanc', 'pion')
((6, 1), 'blanc', 'pion')
((7, 4), 'blanc', 'pion')
((0, 5), 'noir', 'pion')
((3, 4), 'noir', 'pion')
從第4行開始是我想要轉換成字典的東西。每個數字元組是字典中的一個鍵,另外兩個是被稱爲片的類的實例(對象)的屬性,'blanc'或'noir'是屬性piece.color的值,'pion'是屬性piece.thetype(這是其他可能的值是'dame')。 基本上,如果我想手動填寫字典像上面是這樣的:
self.cases = {}
self.cases[(3, 0)] = Piece("blanc", "pion")
self.cases[(5, 4)] = Piece("blanc", "pion")
self.cases[(2, 1)] = Piece("noir", "pion")
...
我正在做一個字符串作爲一個參數來填充字典的功能。這個函數是爲了在另一個函數中使用的,它會讀取像上面這樣的txt文件,並在文件中找到字符串,將其用作此函數的參數。所以我也想知道如何在上面的txt文件中找到字符串,所以我可以將它傳遞給這個函數。最後一部分將用於其他功能。有可能是一個更簡單的方法來做到這一點,但我真的需要這樣做,所以一切都融合在一起。
編輯:是的,這是真正的結構/格式,不幸的是我不能改變它。
這個結構從哪裏來?操作 – njzk2
似乎並不是很簡單,這就是爲什麼我在其他問題中詢問這些數據在何處。把一個python'repr'寫到一個文件中並不是一個很好的方法來重新獲取它。 – Eevee
這真的是文件的結構,還是它是一個簡化的例子?如果它真的是結構,它會永遠是結構,還是未來會變得更加複雜? –