如何从列表中自定义展平嵌套列表?
How customized flattening the nested list from a list?
我有以下列表:
all_lines [[(0, 0), (0, 7)],
[(20, 20), (0, 7)],
[(0, 0), (13, 20)],
[(20, 20), (13, 20)],
[(10, 0), (0, 17), (10, 10), (10, 17), (20, 0), (20, 17), (0, 20), (20, 7)]]
所以我想将其转换为以下格式:
all_lines [[(0, 0), (0, 7)],
[(20, 20), (0, 7)],
[(0, 0), (13, 20)],
[(20, 20), (13, 20)],
[(10, 0), (0, 17)],
[(10, 10), (10, 17)],
[(20, 0), (20, 17)],
[(0, 20), (20, 7)]]
我试过了:
flat_list = [item for sublist in all_lines for item in sublist]
但没有给我想要的格式。
如何将列表转换成我想要的格式?
使用嵌套列表理解适用于您的目的:
flat=[[all_lines[i][j],all_lines[i][j+1]] for i in range(0,len(all_lines)) for j in range(0,len(all_lines[i]),2) ]
这里假设任意元素的长度都能被2整除
我有以下列表:
all_lines [[(0, 0), (0, 7)],
[(20, 20), (0, 7)],
[(0, 0), (13, 20)],
[(20, 20), (13, 20)],
[(10, 0), (0, 17), (10, 10), (10, 17), (20, 0), (20, 17), (0, 20), (20, 7)]]
所以我想将其转换为以下格式:
all_lines [[(0, 0), (0, 7)],
[(20, 20), (0, 7)],
[(0, 0), (13, 20)],
[(20, 20), (13, 20)],
[(10, 0), (0, 17)],
[(10, 10), (10, 17)],
[(20, 0), (20, 17)],
[(0, 20), (20, 7)]]
我试过了:
flat_list = [item for sublist in all_lines for item in sublist]
但没有给我想要的格式。
如何将列表转换成我想要的格式?
使用嵌套列表理解适用于您的目的:
flat=[[all_lines[i][j],all_lines[i][j+1]] for i in range(0,len(all_lines)) for j in range(0,len(all_lines[i]),2) ]
这里假设任意元素的长度都能被2整除