เหตุใดรายการจึงไม่มีวิธี "รับ" ที่ปลอดภัยเช่นพจนานุกรม
>>> d = {'a':'b'}
>>> d['a']
'b'
>>> d['c']
KeyError: 'c'
>>> d.get('c', 'fail')
'fail'
>>> l = [1]
>>> l[10]
IndexError: list index out of range
l[10:11]
แทนl[10]
ตัวอย่างเช่น () รายการย่อย Th จะมีองค์ประกอบที่ต้องการถ้ามี)
.get
ตรงกันข้ามกับบางอย่างที่นี่ผมสนับสนุนความคิดของความปลอดภัยที่ มันจะเทียบเท่าl[i] if i < len(l) else default
แต่อ่านได้ง่ายขึ้นกระชับมากขึ้นและอนุญาตให้i
มีการแสดงออกโดยไม่ต้องคำนวณใหม่
None
หากไม่มีอยู่ คงจะเป็นการดีที่จะพูดx = expensive().get(0, None)
ดังนั้นฉันจะไม่ต้องใส่ผลตอบแทนที่ไร้ประโยชน์ของราคาแพงลงในตัวแปรชั่วคราว