2014-08-26 2 views
-2

Предположим, что у меня есть следующий код:Превратить строку в матрице в Python

My_String = "{i},{j},{i,j}" # which is a line 

Я хочу, чтобы преобразовать его в матрицу, в которой {i,j} является столбец и {i} и {j} являются строками. Я знаю, как делать имена для столбцов и строк, но не знаю, как сделать такую ​​матрицу. Мне не нужен точный ответ, но мне просто нужно руководство. Если кто-нибудь может мне помочь, это будет здорово.

+0

Можете ли вы добавить более конкретный пример вашего требования. В частности, с несколькими строками. – Anoop

+0

Да. My String = {1}, {2}, {1,2}, который является линией, где 1 и 2 - вершины линии, а {1,2} - ребро. Мне нужна матрица инцидентов, где {1} и {2} - строки в матрице, а {1,2} - столбец. {i, j} i 0 0 1 j 0 0 1 – user5184

+0

@Anoop Эта последняя строка, которую я написал, должна была вводиться как матрица. Он просто написал это как предложение .. – user5184

ответ

0

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

Прежде чем продолжить, мне нужно немного изменить ваше представление. Каждое ребро должно быть представлено следующим образом: «{1-2}», что означает, что существует связь между вершиной «1» и вершиной «2».

Так что я буду делать что-то вроде этого:

  1. Разделить линию с помощью запятой. Вы получите массив элементов
  2. Петля через этот массив. Если элемент не содержит «-», вам нужно создать запись empy в словаре с меткой вершины в качестве ключа; в противном случае вы должны получить метку вершин из представления края (вы можете использовать регулярное выражение) и вставить новую запись в словарь, ключ которого является первой вершиной ребра и значением которого является метка второй вершины.

Используя этот подход, вы получите словарь, который будет представлять матрицу смежности заданного графа.

Смежные вопросы