Map trong Python

Chào mọi người, em có đoạn code sau:

codes = {'bussiness' : 0, 'sports' : 1, 'culture' : 2}
y = ['business', 'sports', 'business', 'sports', 'business', 'business', 'culture']
map(y,codes)

Em có search thì thấy có chỉ cách chuyển y từ một string array sang int array y = [0,1,0,1,0,0,2] bằng cách trên nhưng em dùng thì không thấy kết quả gì. Cho em hỏi có cách nào chuyển đổi như thế không ạ! Em cảm ơn!

Vì bạn map sai chứ sao :grin:

Theo link

http://book.pythontips.com/en/latest/map_filter.html

thì bạn phải làm thế này mới ra

res = list(map(lambda x: codes[x], y))
print(res)  # phải in thì mới thấy chứ

Lưu ý thêm, dòng

bạn chỉ viết một mình không có tác dụng gì cả, vì map(function_to_apply, list_of_inputs) trả về 1 map object, không gán nó vào đâu thì kết quả sẽ bay mất.

3 Likes

dòng map(y,codes) mình viết trên jupyter nên thấy output luôn cậu. Cảm ơn cậu đã giúp đỡ!

Nó giống như IDLE ấy, bạn nạp vào cái gì thì kết quả cũng sẽ được in ra thôi. Còn khi chạy đoạn code trên của bạn trên 1 IDE bất kì, dòng map() không in ra cái gì cả.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?