01/10/2018, 17:01

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!

HK boy viết 19:15 ngày 01/10/2018

Vì bạn map sai chứ sao

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

map(y,codes)

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.

Phạm Vân viết 19:09 ngày 01/10/2018

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 đỡ!

HK boy viết 19:16 ngày 01/10/2018

dòng map(y,codes) mình viết trên jupyter nên thấy output luôn cậu

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ả.

Bài liên quan
0