Создание подсписка списка, содержащего кортежи и список с начальными и конечными элементами подсписка в виде кортежей - PullRequest
0 голосов
/ 20 октября 2018

У меня есть список, например, такой:

[(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 голосов
/ 20 октября 2018

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)
...