Tôi biết có rất nhiều câu hỏi về danh sách phân loại/từ điển python, nhưng dường như tôi không tìm được từ nào giúp ích cho trường hợp của tôi và tôi đang tìm giải pháp hiệu quả nhất Tôi sẽ sắp xếp một tập dữ liệu khá lớn.Sắp xếp một từ điển các bộ dữ liệu bằng Python
Dữ liệu của tôi về cơ bản trông như thế này vào lúc này:
a = {'a': (1, 2, 3), 'b': (3, 2, 1)}
tôi về cơ bản tạo ra một danh sách từ trong đó tôi lưu trữ mỗi từ cùng với một số liệu thống kê về nó (n, Sigma (x), Sigma (x^2))
Tôi muốn sắp xếp nó dựa trên một chỉ số cụ thể. Cho đến giờ tôi đã thử một số thứ dọc theo các dòng:
b = a.items()
b.sort(key = itemgetter(1), reverse=True)
Tôi không chắc cách kiểm soát chỉ mục nào được sắp xếp dựa trên danh sách các bộ dữ liệu có hiệu quả? Tôi đoán tôi có hiệu quả cần phải làm tổ hai hoạt động itemgetter nhưng không thực sự chắc chắn làm thế nào để làm điều này.
Nếu có cấu trúc dữ liệu tốt hơn tôi nên sử dụng thay vào đó, vui lòng cho tôi biết. Tôi có lẽ nên tạo một lớp nhỏ/struct và sau đó sử dụng một hàm lambda để truy cập vào một thành viên của lớp?
Rất cám ơn
có, hoàn hảo cảm ơn! Tuy nhiên tôi đọc một nơi nào đó mà itemgetter là nhanh hơn so với sử dụng một hàm lambda vì C của nó biên dịch? Nếu tôi không thể sử dụng itemgetter thì giải pháp này là tốt mặc dù. –
Đừng lo lắng về hiệu suất cho đến khi bạn có một chương trình làm việc, hoàn thành với các bài kiểm tra đơn vị. Nếu cuối cùng, * chính xác *, chương trình là quá chậm, sau đó hồ sơ nó, và tối ưu hóa các bit chậm. –
điểm tốt :) Tôi có thể viết lại nó trong C nếu nó quá chậm anyway, cảm ơn cho các con trỏ :) –