创建包含元组的列表的子列表,并以子列表的开始和结束元素为元组的列表

时间:2018-10-20 12:27:14

标签: python python-2.7 list tuples

我有一个这样的列表

[(1.0, 1.5), [2, 2], (1.5, 1.0), (1.1428571343421936, 0.28571426868438721), [1, 0], (0.5, 0.0), (0.66666668653488159, 0.0), [0, 0], [0, 1], (0.5, 1.25)]

我想通过将元组元素添加为子列表的第一个和最后一个元素来创建子列表,如下所示:

[[(1.0, 1.5), [2, 2], (1.5, 1.0)],[(1.1428571343421936,
0.28571426868438721), [1, 0], (0.5, 0.0)],[(0.66666668653488159, 0.0), [0, 0], [0, 1], (0.5, 1.25)]]

我尝试使用以下代码,但似乎无法正常工作,因为我无法弄清楚如何以所需的方式选择元组。还会给出索引错误。

full_list = []
for ind,value in enumerate(flat_list):
    if isinstance(value,(tuple)):
        a = []
        a.append(value)
        temp = 0
        while(temp!=1):
            ind = ind + 1
            j = flat_list[ind]
            a.append(j)
            if type(j) == 'tuple':
                temp = 1
            break
        full_list.append(a)
    else:
        continue

print(full_list)

请提出一些建议!

1 个答案:

答案 0 :(得分:0)

break作为while循环的最后一条语句可以用if代替。

full_list = []
state = 0
for value in flat_list:
    if isinstance(value, tuple):
        if state == 0:
            state = 1
            inner_list = []
            full_list.append(inner_list)
        else:
            state = 0
    inner_list.append(value)

print(full_list)