如何創建組合列表
回答
你可以使用map
像這樣:
combinations = [('A',),
('B',),
('A','B')]
combinations_list = map(list, combinations)
這將返回一個generator
(Python3)或list
(Python2)。如果你想要一個list
只是將它轉換爲列表:
combinations_list = list(map(list, combinations))
這將在內部的元組結構轉換到一個列表:
[("A"), ("B"), ("A", "B")] -> [["A"], ["B"], ["A", "B"]]
如果你也想變平的元組得到以下結果:
[("A"), ("B"), ("A", "B")] -> [["A"], ["B"], ["AB"]]
你應該改變map
的第一個參數此:
lambda sub_tuple: ["".join(sub_tuple)]
['map'](https://docs.python.org/3/library/functions.html#map)僅在** Python 3 **,** Python 2 **中返回'iterator'對象** [ map'](https://docs.python.org/2/library/functions.html#map)返回'list'對象(while ['itertools.imap'](https://docs.python.org/2 /library/itertools.html#itertools.imap)返回迭代器) –
你說得對,應該指出。我開始習慣於僅在Python3中工作。 – Strinnityk
沒關係,** Python 3 **很棒 –
如果你說你有一個元組列表,並且要列出清單,你可以使用
list_of_lists = [list(t) for t in list_of_tuples]
轉換,或者你可以使用map
。
在Python 2:
list_of_lists = map(list, list_of_tuples)
在Python 3:
list_of_lists = list(map(list, list_of_tuples))
繼OP鏈接的example:
from itertools import combinations
lis = ['A', 'B', 'C', 'D']
result = []
for i in range(1, len(lis)+1):
result+=[''.join(c) for c in combinations(lis, i)]
print(result)
給
['A', 'B', 'C', 'D', 'AB', 'AC', 'AD', 'BC', 'BD', 'CD', 'ABC', 'ABD', 'ACD', 'BCD', 'ABCD']
編輯:
同爲一個班輪:
result = [''.join(c) for i in range(1,len(lis)+1) for c in combinations(lis,i)]
你可以使用一個列表理解與str.join
:
>>> combinations = [('A',), ('B',), ('A','B')]
>>> [[''.join(comb)] for comb in combinations]
[['A'], ['B'], ['AB']]
取而代之的是列表理解,你也可以使用一個發電機的表達:
>>> combs_as_lists = ([''.join(comb)] for comb in combinations)
>>> for comb in combs_as_lists:
... print(comb)
['A']
['B']
['AB']
- 1. 創建組合表
- 2. 使用遞歸創建列表組合
- 3. 如何創建組合鍵?
- 4. 如何爲允許DBNull的組合框創建列表?
- 5. Python:如何創建一個組合列表?
- 6. 如何通過組合每個第三列來創建表?
- 7. 如何在數據表中創建組合框列
- 8. 如何在數組中創建一個列表集合?
- 9. 如何在Python3中創建組合列表?
- 10. 創建組合列表並刪除預先使用的組合
- 11. 如何創建元組列表C++
- 12. 如何創建數組/列表?
- 13. 如何從JSON數組創建列表?
- 14. 如何從numpy數組創建列表?
- 15. 如何創建元組列表Python?
- 16. 合併元組和列表的列表,並創建字典
- 17. 通過組合兩個列表創建列表
- 18. 創建集合/列表
- 19. 如何創建組陣列
- 20. 如何創建陣列組
- 21. 如何創建合併其他兩個列表的列表?
- 22. 創建多個列表合併列表
- 23. 如何當組合列表
- 24. 如何合併使用子陣列創建數組的數組?
- 25. 創建組合
- 26. 按組創建列表和創建JSON
- 27. Python 3 - 在字典和聚合中創建列表的組合
- 28. Python:如何從一系列數字範圍創建組合列表
- 29. 如何創建元組列表的列表?
- 30. 如何創建ASP.NET數組或列表的複選框列表
首先決定是否要每個組合的**列表**或作爲**字符串**(''AB'是一個字符串,而'['A','B']'是兩個字符串的列表)。 –