我創建了一些函數來幫助我運行當前的程序。在可能的情況下,我儘可能多地利用這些自定義元素,以保持其數量合理。python 2.7將字典傳遞給.get
至點。
我在下面寫過讓我可以通過各種字典搜索結果是在列表的形式,即人民= {'IR1':[65,'M',77076],'IR2':[24 ,'M',77077],...} IR =唯一人標識 列表中的第1位 - 年齡, 列表中的第2位 - 性別, 列表中的第3位 - GP練習代碼。
要拿起我使用的每一個必要的值:
def TestCustom1(Search, Source, Offset):
if Search == 'Blank' or Search == 'Missing IRF - MT' or \
Search == 'Missing IRF - source data' or Search is None or \
Search == 'Date out of scope':
CusRet = 'Blank'
elif Source.get(Search) is not None:
CusRet = TestType('CharZ', Source.get(Search)[Offset])
else:
CusRet = 'Missing from look up tbl'
return CusRet
其中: TestType,評估結果(即如果值爲Null則返回「空白」)。 Search =查找值,Source =字典的名稱,Offset =值的位置。 我使用它來支持大約5種不同的字典。
問題: 我有很簡單的字典= {「AA20」:「脊柱硬膜內主要1」,...}
當使用編輯器的一切以下正常工作:
DictHRG.get('HC08Z')[0:]
u'Intradural Spine Major 1'
但試圖通過在[0:]爲我所做的功能,有恩的錯誤:
TestCustom1('HC08Z', DictHRG, 0:)
SyntaxError: invalid syntax
和
TestCustom1('HC08Z', DictHRG, [0:])
SyntaxError: invalid syntax
Sollution: 1.我可以寫一個新的功能,但提到我試圖讓他們合理數量的 2.我可以在代碼中使用IF語句這個特定的數據集,但寧願使用TestCustom1(如在毛坯我需要爲所有的數據源相同的輸出):
CusRet = 'Missing from look up tbl'
,它是更容易,如果需要而改變它在功能上要回這一套(我有超過50個數據源)
問題: 你可能會喜歡上面,也建議替代品將不勝感激(我敢肯定,這是我正在做的一些菜鳥錯誤)。
非常感謝提前。
您應該將您的變量命名爲小寫,因爲大寫字母會反映類名稱。見http://www.python.org/dev/peps/pep-0008/#prescriptive-naming-conventions – linkyndy
看到了,但這是我從MS Excel VBA得到的一個糟糕的習慣。一旦我不是蟒蛇新手,我可能會開始工作:) – dce