Группировка списка кортежей в PythonPython

Программы на Python
Anonymous
Группировка списка кортежей в Python

Сообщение Anonymous »

Вот улучшенная версия вашего вопроса о переполнении стека:

У меня есть программа, которая принимает входные данные и отображает их в виде списка. Однако я хочу принимать входные данные отдельно и выполнять операцию группировки отдельно, поскольку мне нужны две переменные: количество узлов и ребер. Мне нужны эти две переменные для функции __init__ класса Graph.
Вот класс Graph:

Код: Выделить всё

class Graph:

def __init__(self, num_nodes, edges):
self.data = [[] for _ in range(num_nodes)]
for v1, v2 in edges:
self.data[v1].append(v2)
self.data[v2].append(v1)

def __repr__(self):
return "\n".join(["{} : {}".format(i, neighbors) for (i, neighbors) in enumerate(self.data)])

def __str__(self):
return repr(self)

# Example usage:
# g1 = Graph(num_nodes, edges)
# print(g1)
В приведенном ниже коде проблема в том, что обе операции выполняются в одной переменной t. Я хочу разделить эти операции:

Код: Выделить всё

t = list(tuple(map(int, input().split())) for _ in range(int(input('enter number of rows: '))))
print(t)
Мне нужно, чтобы результат выглядел так:

Код: Выделить всё

enter number of nodes: 3
enter edges:
1 2
3 4
5 6

list of edges:
[(1, 2), (3, 4), (5, 6)]
Как я могу изменить свой код, чтобы принимать количество узлов и ребер как отдельные входные данные и сохранять их в отдельных переменных? Вот что я уже пробовал:

Код: Выделить всё

num_nodes = int(input('enter number of nodes: '))
edges = []
num_edges = int(input('enter number of edges: '))

print('enter edges:')
for _ in range(num_edges):
edge = tuple(map(int, input().split()))
edges.append(edge)

print('list of edges:')
print(edges)
Когда я использую этот метод ввода, как я могу правильно инициализировать и использовать класс Graph с этими переменными? Любые предложения и улучшения приветствуются!


Подробнее здесь: https://stackoverflow.com/questions/736 ... -in-python

Вернуться в «Python»