Trước hết tôi muốn nói rằng tiêu đề của tôi có lẽ không mô tả chính xác câu hỏi của tôi. Tôi không biết làm thế nào quá trình tôi đang cố gắng để thực hiện được gọi là, mà làm cho tìm kiếm một giải pháp trên stackoverflow hoặc google rất khó khăn. Một gợi ý liên quan đến điều này có thể đã giúp tôi rất nhiều!Python: Kết hợp trong danh sách các danh sách (?)
Điều tôi hiện có về cơ bản là hai danh sách có danh sách dưới dạng phần tử. Ví dụ:
List1 = [ [a,b], [c,d,e], [f] ]
List2 = [ [g,h,i], [j], [k,l] ]
Những danh sách này về cơ bản đỉnh của một đồ thị tôi đang cố gắng để tạo ra sau này trong dự án của tôi, nơi mà các cạnh có nghĩa vụ phải được từ List1 để List2 bởi hàng.
Nếu chúng ta nhìn vào hàng đầu tiên của mỗi người trong danh sách, tôi do đó có:
[a,b] -> [g,h,i]
Tuy nhiên, tôi muốn có assingments/cạnh các yếu tố độc đáo, vì vậy tôi cần:
[a] -> [g]
[a] -> [h]
[a] -> [i]
[b] -> [g]
[b] -> [h]
[b] -> [i]
kết quả tôi muốn có là một danh sách khác, với những assigments độc đáo như các yếu tố, ví dụ:
List3 = [ [a,g], [a,h], [a,i], [b,g], ...]
Có cách nào thanh lịch để có được từ List1 và List2 vào Danh sách 3 không? Cách tôi muốn thực hiện điều đó là bằng cách đi từng hàng, xác định số lượng thành phần của mỗi hàng và sau đó viết mệnh đề và vòng lặp để tạo danh sách mới với tất cả các kết hợp có thể. Điều này, tuy nhiên, cảm thấy như một cách rất không hiệu quả để làm điều đó.
Dường như bạn muốn 'itertools. product' của mỗi cặp được tạo bởi 'zip'ping (hoặc' itertools.izip'ping in 2.x) hai danh sách cùng nhau. – jonrsharpe
@jonrsharpe đánh tôi với nó, nhưng tôi đồng ý, đây là một công việc cho itertools (https://docs.python.org/2/library/itertools.html) – firelynx
Cảm ơn bạn đã bình luận của bạn, tôi nghĩ rằng đây là chính xác những gì Tôi đang tìm kiếm! Tôi đang thử giải pháp được Cyber nêu bên dưới bây giờ. – user4911943