Chúng ta có thể cần gán một giá trị cho từng phần tử của một danh sách. Ví dụ – có tên các ngày trong tuần và muốn thêm từ "day" làm hậu tố cho chúng. Các tình huống này có thể xử lý theo các cách sau.
Với itertools.repeat
Ta có thể dùng phương thức repeat từ mô-đun itertools để cùng một giá trị được dùng lặp lại khi ghép cặp với các giá trị từ danh sách cho trước dùng hàm zip.
Ví dụ
from itertools import repeat
listA = ['Sun', 'Mon', 'Tues']
val = 'day'
print("Danh sách cho trước : ", listA)
print("Giá trị cần gán : ", val)
# Với zip() và itertools.repeat()
res = list(zip(listA, repeat(val)))
print("Danh sách với giá trị gán:\n", res) Kết quả
Chạy mã trên cho kết quả sau:
Danh sách cho trước : ['Sun', 'Mon', 'Tues']
Giá trị cần gán : day
Danh sách với giá trị gán: [('Sun', 'day'), ('Mon', 'day'), ('Tues', 'day')] Với lambda và map
Phương thức lambda lặp qua các phần tử danh sách và bắt đầu ghép cặp. Hàm map đảm bảo tất cả phần tử từ danh sách được bao phủ trong việc ghép cặp phần tử danh sách với giá trị cho trước.
Ví dụ
listA = ['Sun', 'Mon', 'Tues']
val = 'day'
print("Danh sách cho trước : ", listA)
print("Giá trị cần gán : ", val)
# Với map và lambda
res = list(map(lambda i: (i, val), listA))
print("Danh sách với giá trị gán:\n", res) Kết quả
Chạy mã trên cho kết quả sau:
Danh sách cho trước : ['Sun', 'Mon', 'Tues']
Giá trị cần gán : day
Danh sách với giá trị gán: [('Sun', 'day'), ('Mon', 'day'), ('Tues', 'day')]