Tại sao danh sách không có phương pháp "lấy" an toàn như từ điển?
>>> 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]
thay vì l[10]
, chẳng hạn. () Danh sách con sẽ có yếu tố mong muốn nếu nó tồn tại)
.get
. Nó sẽ tương đương l[i] if i < len(l) else default
, nhưng dễ đọc hơn, súc tích hơn và cho phép i
trở thành một biểu thức mà không cần phải tính toán lại
None
nếu nó không tồn tại. Thật tốt khi nói điều x = expensive().get(0, None)
đó vì vậy tôi sẽ không phải đặt sự trở lại vô ích của sự đắt đỏ vào một biến tạm thời.