我有應與list
S和dict
的工作函數:處理列表和類型的字典相同的 - 默認
def row2tuple (row, md):
return (row[md.first], row[md.next])
,如果row
是list
然後md.first
和md.next
將int
S和IF row
是dict
,它們將是str
。
但是,如果row
是dict
且字段丟失,則會導致錯誤。如果我使用get
方法:
def row2tuple (row, md):
return (row.get(md.first), row.get(md.next))
它正是我想要的dict
秒,但它並不適用於list
s的所有工作。
我能做到,當然
def row2tuple (row, md):
if isinstance(row,list):
return (row[md.first], row[md.next])
return (row.get(md.first), row.get(md.next))
的,但它看起來醜陋。
有沒有更pythonic /簡明的方法來做到這一點?
你沒有在第二種方法中,什麼都可以用'int'? – Kasramvd
您是否也希望處理用戶傳遞整數的情況,但整數超出了列表的範圍?用你最後一個例子(使用'get'),這仍然會產生一個錯誤。 – BrenBarn
@ Kasramvd:是的,索引應該是每個解析的 – sds