Tôi đã bị kẹt trên một dòng mã của tôi trong một thời gian và tôi không biết tại sao nó lại trả về.thay thế các mục danh sách phù hợp với điều kiện trong lambda
guess = 'a'
word = ['a', 'b', 'c']
board = ['_', '_', '_']
board = list(map(lambda x: guess if word[board.index(x)] == guess else x, board))
print(board)
này trả
['a', 'a', 'a']
Trong khi mục tiêu của tôi là sự trở lại của
['a', '_', '_']
giải pháp trước đây của tôi là để lặp qua danh sách với giá trị gia tăng cho các chỉ số, và để riêng kiểm tra từng mục trong từ để đoán, và để thay thế danh sách hội đồng quản trị tại cùng một chỉ mục, nhưng tôi cảm thấy rằng có một cách súc tích và ngắn gọn hơn bằng cách sử dụng lambda
, tôi không thể hoàn toàn hiểu rồi.
vấn đề là tất cả 'x' của bạn sẽ là' _' và 'board.index (x)' luôn trả về '0' vì đó là dấu gạch dưới đầu tiên trong bảng của bạn. Bạn sẽ cần sử dụng 'liệt kê (bảng)' để có thể lặp qua các giá trị và chỉ mục một cách độc lập – Hamms
Tôi cũng khuyên bạn nên sử dụng một danh sách hiểu chứ không phải là bản đồ; nó dễ dàng hơn, dễ đọc hơn và phù hợp hơn với trường hợp sử dụng của bạn – Hamms