Map, filter, reduce Notes
TIL
594
White

Manh Truong Tuan viết ngày 24/10/2016

Map, filter Notes

1.Map

Tính bình phương của từng thành phần trong mảng

1.1 Python

Traditional way

items = [1, 2, 3, 4, 5]
squared = []
for i in items:
    squared.append(i**2)

Map way:

items = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, items))

Fomula : map(function_to_apply, list_of_inputs)

1.2 C++

vector<int> items = {1,2,3,4};
for (auto &e: items)
{
    e = e* e;
};

Map way

  vector<int> items = {1,2,3,4};
  transform(items.begin(), items.end(), items.begin(),
     [](auto e){return e*e;} );

1.3 Ruby

Original

items = [1,2,3,4,5]
squared = []
items.each {|x| squared << x * x}

Map way

items = [1,2,3,4,5]
squared = items.map { |x| x*x }

2. Filter

Bài toán: Chỉ giữ lại những thành phần thỏa mãn giá trị nhở hơn 3 hoặc lớn hơn 8 trong mảng

2.1 Python

vec = [1,3,5,7,9]
filter(lambda x: x<3 or x>8 , vec) 

2.2 C++

vector<int> vec = {1, 3, 5, 7, 9};
remove_if(vec.begin(),vec.end(),
    [](int i){ return !((i < 3) or (i > 8)) });

2.3 Ruby

vec = [1,3,5,7,9]
vec.select { |x| x <  3 or x > 8 }

3. Reduce

Bài toán: Tính tổng giá trị các thành phần của mảng

3.1 Python

reduce(lambda x, y: x + y, vec, 0)

3.2 C++

accumulate(vec.begin(), vec.end(), 0,
    [](int a, int b){ return a+b;})

3.3 Ruby

vec.inject { |sum, x| sum + x }
Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Manh Truong Tuan

8 bài viết.
6 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
4 2
Vài hôm trước, khi phải giải quyết một task liên quan đến việc phải thêm 1 vài thay đổi khá lớn cho một loạt các function có sẵn thì mình chợt nhớ ...
Manh Truong Tuan viết 3 tháng trước
4 2
White
3 3
Sử dụng Terminal hiệu quả hơn với tmux (Link) 1. Cài đặt bash $ sudo E addaptrepository ppa:pirho/dev $ sudo aptget update $ sudo aptget install...
Manh Truong Tuan viết hơn 1 năm trước
3 3
White
2 0
Bài toán là 1 mô hình kiểu mạng xã hội đơn giản, trong đó user nhấn vào 1 nút Add friend hoặc Follow để cho 1 user khác vào danh sách theo dõi ( để...
Manh Truong Tuan viết hơn 1 năm trước
2 0
Bài viết liên quan
White
0 2
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 1 tháng trước
0 2
White
19 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết gần 2 năm trước
19 1
White
1 1
Chào mọi người, hôm nay mình viết một bài TIL nhỏ về cách lấy độ phân giải của màn hình hiện tại đang sử dụng. xdpyinfo | grep dimensions Kết quả...
namtx viết 12 tháng trước
1 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
8 bài viết.
6 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!