Saya memiliki daftar dengan daftar yang memiliki kombinasi seperti baselist = [['Store3', 'Store4', 'Store5'], ['Rack1', 'Rack2'], ['Box1', 'Box2']] dan mencoba membuat daftar dengan String seperti:

Store3Rack1Box1
Store3Rack1Box2
Store3Rack2Box1
Store3Rack2Box2
Store4Rack1Box1
Store4Rack1Box2
Store4Rack2Box1
Store4Rack2Box2

Saya sudah mencobanya dengan itertools dan koleksi. Tetapi pada akhirnya saya tidak tahu bagaimana menyelesaikan ini. Bagaimana solusi yang tepat?

-1
Papageno 10 Agustus 2017, 10:21

2 jawaban

Jawaban Terbaik

itertools.product adalah cara yang tepat. Apakah Anda mencoba membongkar daftar sebelum meneruskannya ke fungsi?

In [523]: print('\n'.join(map(''.join, itertools.product(*baselist))))
Store3Rack1Box1
Store3Rack1Box2
Store3Rack2Box1
Store3Rack2Box2
Store4Rack1Box1
Store4Rack1Box2
...

Biarkan saya memecahnya:

  1. itertools.product(*baselist) menghasilkan kombinasi dalam bentuk daftar tupel

  2. map(''.join, ...) bergabung dengan setiap daftar produk bersama-sama

  3. '\n'.join(...) akan menyiapkan output Anda untuk dicetak

4
Christian Dean 10 Agustus 2017, 13:41
map("".join,itertools.product(*baselist))
1
cs95 1 September 2017, 03:59