如何创建组合列表
回答
你可以使用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']'是两个字符串的列表)。 –