2016-11-20 83 views
0

限制分割字符串,所以我有一個類如何基於在Python字典子由

MyClass 
    MyClass things 

,並在我的主要功能我有每個對象的字典中保持跟蹤和它們的屬性,像這樣:

dict = { 
     'obj1':'[information string]' 
     'obj2':'[information string2]' 
     and so on 
     } 

而且我試圖得到一條特定的信息串的信息,我將能夠做到這一點,如果我能基於一個子拆分信息字符串,因爲foramt信息字符串是這樣的:

'value1, value2, AlwaysHere: value3' 

如果我能夠根據'AlwaysHere'-substring分割字符串,我可以根據需要使用value3。有沒有其他方法可以從嵌套字典中獲取value3,或者如何分割信息字符串?我已經嘗試過:

type3 = dict[obj#].split("AlwaysHere ") 

,並導致與該消息的失敗:

AttributeError: 'list' object has no attribute 'strip' 
+0

你真的有一個'dict'?目前你正在顯示一個* set * -literal(或者那些':'應該在字符串之外?)...另外 - 你在用什麼'dict' - 類已經可以跟蹤他們自己的屬性等...(例如:任何原因,信息不應該是一個類(實例)的屬性,而不是在字典?) –

+0

我不能(或至少知道如何)使用類的屬性來做這件事是因爲我的代碼必須有一個用戶輸入對象及其起始屬性的循環,而「objname = input(」put obj here「將只覆蓋每個循環的前一個條目/條目。這就是爲什麼我有字典 - 保存我的類函數爲用戶輸入提供的值 – Grak

回答

0

你的字典中的定義是錯誤的 應該

dict = { 
     'obj1':'[information string]', 
     'obj2':'[information string2]', 
     and so on 
     } 

而且字符串可以拆分以你想要的方式, "value1, value2, AlwaysHere: value3".split("AlwaysHere:")

會給

['value1, value2, ', ' value3']

+0

嗯,這是我有的字典,在我輸入了幾個輸入後直接從我的代碼複製:{obj1:' val1,val2,AlwaysHere:val3',obj2:'val1,val2,AlwaysHere:val3'} – Grak

0

我有點啞,我會早日未能在

MyDict[objname] = MyClass(stuff) 

,但現在,我試了一下它的工作,像這樣第二次,因爲我是能夠調用

MyDict[objname] 

的OBJ