Не удаётся избавиться от петель в генераторе не взвешенного ориентированного графа

Пытаюсь написать генератор не звешенного ориентированного графа без петель, и никак не могу избавиться от этих петель... Периодически все-таки выскакивают...

import random


def graph_gen(vertex):
    vert = []
    graph = dict()
    for i in range(vertex):
        vert.append(i)

    for i in vert:
        vert_ch = random.choices(vert, k = random.randint(1, vertex))
        for j in vert_ch:
            if j == i:
                vert_ch.remove(j)

        vert_ch = set(vert_ch)
        graph.update([(str(i), vert_ch)])

    return graph

graph_gen(10)

Подскажите, пожалуйста, куда стоит обратить внимание?


Ответы (1 шт):

Автор решения: JdS_161

Нашел в чем была проблема)

import random


def graph_gen(vertex):
    vert = []
    graph = dict()
    for i in range(vertex):
        vert.append(i)

    for i in vert:
        vert_ch = random.choices(vert, k = random.randint(1, vertex))
        vert_ch = set(vert_ch)
        vert_ch.discard(i)
        graph.update([(str(i), vert_ch)])

    return graph

graph_gen(10)

Нужно было не из списка убирать элемент а из множества)

→ Ссылка