[Python] Create nested lists based on split of characters

Discussão em 'Python' iniciado por Stack, Fevereiro 25, 2025.

  1. Stack

    Stack Membro Participativo

    I have a list made by strings, correctly cleaned (split(',') can be safely used), and correctly sorted depending on numbers. As a small example:

    l = ['C1', 'C1,C2', 'C2,C3', 'C3,C4', 'C4', 'C5', 'C5,C6', 'C6,C7', 'C7,C8', 'C8', 'C10', 'C10,C11', 'C11,C12', 'C12,C13', 'C13']


    What I'm trying to achieve is to create as many sublists that start and end with single strings, that is:

    [
    ['C1', 'C1,C2', 'C2,C3', 'C3,C4', 'C4'],
    ['C5', 'C5,C6', 'C6,C7', 'C7,C8', 'C8'],
    ['C10', 'C10,C11', 'C11,C12', 'C12,C13', 'C13']
    ]


    I thought to add some logic like the following code, but I'm not sure if I'm on the correct way:

    tl = []

    for i in l:

    # just get the variable
    val = i

    tl.append(val)

    # split by ,
    val_split = len(i.split(','))

    # check if the value is the first element of the list (C1)
    if val == l[0]:
    print(1, val)
    # check if the split of the character is longer than 2 (C1,C2)
    elif val_split > 1:
    print(2, val)
    # check is the split of the character siis equalt to 1 (C4)
    elif val_split == 1:
    # here the code should compare if the character is equal to the last value of the nested list. If yes go with teh next value (C5)
    if val != tl[-1]:
    print(3, val)
    else:
    print(4, val)

    Continue reading...

Compartilhe esta Página