Hướng dẫn flatmap in python
You can concatenate lists using the normal addition operator:
The built-in function
Combine the above to flatten a list of lists:
You can now define your
Edit: I just saw the critique in the comments for another answer and I guess it is correct that Python will needlessly build and garbage collect lots of smaller lists with this solution. So the best thing that can be said about it is that it is very simple and concise if you're used to functional programming :-) Bài viết được sự cho phép của tác giả Kiên Nguyễn Trước khi bắt đầu tìm hiểu về Java Map và flatMap, bạn nào chưa biết về Java Stream có thể đọc bài Stream – KieBlog để tìm hiểu và nhớ lại kiến thức về Stream trước khi bắt đầu vào nội dung chính của bài đọc. 1. Map trong Java StreamTrong Stream API, phương thức Map() hoạt động như là một functions có argument (đối số). Thứ nhất, phương thức này là phương thức trung gian (terminal operation).Phương thức này applie tất cả các chứng năng có ở funtions cho các elements trong Stream. Cùng xem qua ví dụ sau đây: Ở ví dụ trên, phương thức Map() sử dụng phương thức String::length nhằm tính đoán độ dài các chuỗi String trong List. Kết quả trả về sẽ là một list độ dài các chuỗi. Phương thức Map() đã hoạt động hoàn hảo. Câu hỏi đặt ra là tại sao ta lại cần thêm phương thức flatMap()?. Tại sao lại cần thêm phương thức này?. Cùng tìm hiểu tiếp nhé. Đầu tiên, không cần phải nạp vào đầu những khái niệm lằng nhằng, rắc rối. Để đơn giản và dễ hiểu, ta cứ nhớ rằng: Ủa, vậy làm bẹp lép là làm gì?. Flattening sẽ chuyển đổi list trong list. Merge lại tất cả lại với nhau thành một list duy nhất. Tất nhiên, nó bao gồm tất cả các phần tử có trong list con.Từ từ, hãy cùng phân tích định nghĩa đã 3. Tại sao lại cần thêm flatmap?Để hiểu được tại sao lại cần thêm flatmap, hãy cùng xem xét hai ví dụ sau đây: Ta có một Array String các chuỗi mã hóa bị trùng lặp. Bài toán đặt ra: loại bỏ trùng lặp, lấy giá trị chuỗi. Ù uôi, dễ thế!. Chẳng phải sử dụng Java distince() kết hợp với Map là sẽ xong sao?. Vấn đề không đơn giản như thế!, yêu cầu ngặt ngèo hơn. Kiểu trả về bắt buộc phải là Stream Đoạn source này cho ta kết
quả chính xác. Đoạn mã được loại bỏ trùng lắp. Nhưng kiểu trả về thì lại là List Tại sao lại vậy?. Nguyên nhân là do Stream sẽ thực hiện chia tách và loại bỏ các từ trên từng Object String trong Arrays. Đây chính là lúc mà ta cần tới flatMap: Để ý tới hình ảnh phía dưới để biết phương thức flatMap() đã loại bỏ trùng lặp và trả về cho ta một List 4. Kết luận
flat Map() là một function đơn (unary function). Function này nhận vào các element (phần tử), trả về một stream.
5. Tham khảo
Bài viết gốc được đăng tải tại kieblog.vn Có thể bạn quan tâm:
Xem thêm tìm việc làm java hấp dẫn trên TopDev |