我想将每个值都放在另一个我想在下面的示例中列出的列表中:
[['2', '3'], ['1', '4'], ['3', '2'], ['4', '1'], ['2', '-2'], ['2', '3'], ['1', '5'], ['3', '3'], ['4', '2'], ['3', '1'], ['3', '2'], ['4', '1'], ['3', '-3'], ['2', '2'], ['4', '1'], ['3', '0'], ['4', '3'], ['2', '0']]
像这样:
[[['2'], ['3']], [['1'], ['4']], [['3'], ['2']], [['4'], ['1']], [['2'], ['-2']],
[['2'], ['3']], [['1'], ['5']], [['3'], ['3']], [['4'], ['2']], [['3'], ['1']],
[['3'], ['2']], [['4'], ['1']], [['3'], ['-3']], [['2'], ['2']], [['4'], ['1']],
[['3'], ['0']], [['4'], ['3']], [['2'], ['0']]]
答案 0 :(得分:2)
首先,这是您对单个子列表执行的操作:
out = [[elem] for elem in sub_list]
由于您要对主列表中的每个子列表执行此操作,所以:
out = [
[[elem] for elem in sub_list]
for sub_list in main_list
]
列表理解是一件很棒的事情!
答案 1 :(得分:0)
list(map(lambda x: [[x[0]],[x[1]]], aa))
aa
是您的输入列表:
>>> aa
[['2', '3'], ['1', '4'], ['3', '2'], ['4', '1'], ['2', '-2'], ['2', '3'], ['1', '5'], ['3', '3'], ['4', '2'], ['3', '1'], ['3', '2'], ['4', '1'], ['3', '-3'], ['2', '2'], ['4', '1'], ['3', '0'], ['4', '3'], ['2', '0']]
>>> list(map(lambda x: [[x[0]],[x[1]]], aa))
[[['2'], ['3']], [['1'], ['4']], [['3'], ['2']], [['4'], ['1']], [['2'], ['-2']], [['2'], ['3']], [['1'], ['5']], [['3'], ['3']], [['4'], ['2']], [['3'], ['1']], [['3'], ['2']], [['4'], ['1']], [['3'], ['-3']], [['2'], ['2']], [['4'], ['1']], [['3'], ['0']], [['4'], ['3']], [['2'], ['0']]]
答案 2 :(得分:0)
您可以通过嵌套列表理解来实现所需的目标:
>>> a = [['2', '3'], ['1', '4'], ['3', '2'], ['4', '1'], ['2', '-2'], ['2', '3'], ['1', '5'], ['3', '3'], ['4', '2'], ['3', '1'], ['3', '2'], ['4', '1'], ['3', '-3'], ['2', '2'], ['4', '1'], ['3', '0'], ['4', '3'], ['2', '0']]
>>> b = [[[j] for j in i] for i in a]
>>> b
[[['2'], ['3']], [['1'], ['4']], [['3'], ['2']], [['4'], ['1']], [['2'], ['-2']], [['2'], ['3']], [['1'], ['5']], [['3'], ['3']], [['4'], ['2']], [['3'], ['1']], [['3'], ['2']], [['4'], ['1']], [['3'], ['-3']], [['2'], ['2']], [['4'], ['1']], [['3'], ['0']], [['4'], ['3']], [['2'], ['0']]]
答案 3 :(得分:0)
假设子列表始终包含两个元素,则可以执行以下操作:
[[[a], [b]] for a,b in your_list]
答案 4 :(得分:0)
通过递归,您可以获取具有任何嵌套级别的通用列表所需的内容。
def make_sublists(ll):
res = []
for i in ll:
if isinstance(i, list):
res.append(make_sublists(i))
else:
res.append([i])
return res
使用您的示例:
mylist = [['2', '3'], ['1', '4'], ['3', '2'], ['4', '1'], ['2', '-2'], ['2', '3'], ['1', '5'], ['3', '3'], ['4', '2'], ['3', '1'], ['3', '2'], ['4', '1'], ['3', '-3'], ['2', '2'], ['4', '1'], ['3', '0'], ['4', '3'], ['2', '0']]
print(make_sublists(mylist))
您将获得预期的输出。
[[['2'], ['3']], [['1'], ['4']], [['3'], ['2']], [['4'], ['1']], [['2'], ['-2']], [['2'], ['3']], [['1'], ['5']], [['3'], ['3']], [['4'], ['2']], [['3'], ['1']], [['3'], ['2']], [['4'], ['1']], [['3'], ['-3']], [['2'], ['2']], [['4'], ['1']], [['3'], ['0']], [['4'], ['3']], [['2'], ['0']]]
答案 5 :(得分:0)
如果您希望您的解决方案适用于每个子列表中的任意数量的元素,请检查以下内容:
inlist = [['2', '3'], ['1', '4'], ['3', '2'], ['4', '1'], ['2', '-2'], ['2', '3'], ['1', '5'], ['3', '3'], ['4', '2'], ['3', '1'], ['3', '2'], ['4', '1'], ['3', '-3'], ['2', '2'], ['4', '1'], ['3', '0'], ['4', '3'], ['2', '0']]
inlist = list(map(lambda elem: list(map(list,elem)),inlist))
print(inlist)