# 2x3 dimensional list
multidim_list = [
[1,2,3],
[4,5,6],
]
# 2x3x2 dimensional list
multidim_list2 = [
[
[1,2,3],
[4,5,6],
],
[
[7,8,9],
[10,11,12],
]
]
def multiply_list(list):
...
Tôi muốn triển khai hàm, sẽ nhân tất cả các phần tử trong danh sách theo hai. Tuy nhiên, vấn đề của tôi là danh sách có thể có số lượng kích thước khác nhau.Python: Lặp lại các danh sách với số lượng kích thước khác nhau, có cách nào chung không?
Có cách nào chung để lặp/lặp lại danh sách đa chiều và ví dụ nhân mỗi giá trị cho hai?
EDIT1: Cảm ơn câu trả lời nhanh. Đối với trường hợp này, tôi không muốn sử dụng numpy. Việc đệ quy có vẻ tốt, và thậm chí nó không cần phải sao chép danh sách, có thể là khá lớn.
Đây là những gì tôi muốn. Nó đã được từ lâu tôi đã sử dụng đệ quy, gần như đã quên nó. Và tôi không muốn sử dụng numpy cho trường hợp này. – JoonasS
"... nó cũng là cách kiểm tra như vậy được thực hiện trong các thư viện python." Chỉ cần ra khỏi tò mò - những gì các thư viện Python bạn có trong tâm trí ở đây? –
@Sven Busted. Tìm kiếm "pin" tôi đã tìm thấy không kiểm tra như vậy. Gần nhất tôi đến là shutil sử dụng 'isinstance (function, collections.Callable)'. Có rất nhiều kiểm tra 'isinstance (x, list)'. Tôi _thougth_ bất cứ nơi nào một hàm hoặc lớp được xây dựng sẵn cần kiểm tra kiểu args của nó (ví dụ như nó là một danh sách hoặc một dict) nó sẽ làm điều này bằng cách sử dụng ABC trong 'collections', để người dùng có thể thay thế' list 'đối tượng với một lớp con' MutableSequence' và vẫn có nó hoạt động. Thành thật mà nói, tôi nghĩ rằng đây là một lý do lớn tại sao họ giới thiệu ABCs ở nơi đầu tiên. Tôi sẽ chỉnh sửa câu trả lời của mình. –