Tôi vừa học về khả năng hiểu danh sách, đây là một cách nhanh chóng để lấy dữ liệu trong một dòng mã. Nhưng có điều gì đó làm tôi khó chịu.Đọc danh sách Python cho từ điển trong từ điển?
Trong thử nghiệm của tôi, tôi có loại từ điển bên trong danh sách:
[{'y': 72, 'x': 94, 'fname': 'test1420'}, {'y': 72, 'x': 94, 'fname': 'test277'}]
Danh sách hiểu s = [ r for r in list if r['x'] > 92 and r['x'] < 95 and r['y'] > 70 and r['y'] < 75 ]
hoạt động hoàn hảo trên đó (đó là, trên thực tế, kết quả của dòng này)
Dù sao , Sau đó tôi nhận ra rằng tôi không thực sự sử dụng một danh sách trong dự án khác của tôi, tôi đang sử dụng một từ điển. Cũng giống như vậy:
{'test1420': {'y': '060', 'x': '070', 'fname': 'test1420'}}
Bằng cách đó tôi chỉ có thể chỉnh sửa từ điển của tôi với var['test1420'] = ...
Nhưng danh sách comprehensions không làm việc trên đó! Và tôi không thể chỉnh sửa danh sách theo cách này vì bạn không thể chỉ định một chỉ mục như thế.
Có cách nào khác không?
Việc hiểu danh sách có thể thật tuyệt, nhưng đừng quá tải. Không có quy tắc kiên định chống lại sự hiểu biết khổng lồ, nhưng đối với những gì đáng giá, Hướng dẫn kiểu Python của Google đề xuất chống lại bất kỳ điều gì quá phức tạp: http://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone=List_Comprehensions#List_Comprehensions –