您可以先分割清單的基礎上逗號,
的元素,然後用itertools.product
以獲得所需的名單爲:
from itertools import product
x = ['A, B', '2', '3', 'Jan, Feb']
new_list = list(product(*[i.split(', ') for i in x]))
其中new_list
內容將是:
[('A', '2', '3', 'Jan'),
('A', '2', '3', 'Feb'),
('B', '2', '3', 'Jan'),
('B', '2', '3', 'Feb')]
根據Dan D的評論,以下是timeit
比較中間列表V/s中間生成器比較在Python 2.中級列表表達式稍快:
mquadri$ python -m timeit "from itertools import product; list(product(*(i.split(', ') for i in ['A, B', '2', '3', 'Jan, Feb'])))"
100000 loops, best of 3: 4.83 usec per loop
mquadri$ python -m timeit "from itertools import product; list(product(*[i.split(', ') for i in ['A, B', '2', '3', 'Jan, Feb']]))"
100000 loops, best of 3: 3.78 usec per loop
到目前爲止您做過任何嘗試了嗎? – wim
鮑勃,你做了很好的描述你想要做什麼。但[SO]不是基於描述,而是基於問題和答案。你有特定的問題要問嗎? –
一些字符串拆分和itertools.permutations? – doctorlove