파이썬 사전에서 그래프의 인접 행렬을 어떻게 생성합니까?

패터슨

다음 사전이 있습니다.

g = {
'A': ['A', 'B', 'C'], 
'B': ['A', 'C', 'E'], 
'C': ['A', 'B', 'D'],
'D': ['C','E'],
'E': ['B','D']
}

그래프를 구현하고 각 목록에는 그래프 정점의 이웃이 포함됩니다 (사전 키는 정점 자체입니다). 문제가 있습니다. 이웃 목록에서 그래프 인접 행렬을 얻는 방법을 생각할 수 없습니다. 쉽지만 파이썬을 처음 접했습니다. 누군가가 나를 도울 수 있기를 바랍니다! Python 3.5를 사용하고 있습니다.

다음 매트릭스를 생성해야합니다.

여기에 이미지 설명 입력

카라 크파

판다없이

keys=sorted(g.keys())
size=len(keys)

M = [ [0]*size for i in range(size) ]

for a,b in [(keys.index(a), keys.index(b)) for a, row in g.items() for b in row]:
     M[a][b] = 2 if (a==b) else 1

M

[2, 1, 1, 0, 0],
[1, 0, 1, 0, 1],
[1, 1, 0, 1, 0],
[0, 0, 1, 0, 1],
[0, 1, 0, 1, 0]]

설명

for a, row in g.items()사전에있는 키 : 값 항목을 for b in row반복하고 값을 반복합니다. (a, b)를 사용했다면 이것은 우리에게 모든 쌍을 주었을 것입니다.

(keys.index(a), keys.index(b)) 하지만 해당 행렬 항목에 할당 할 인덱스가 필요합니다.

keys=sorted(g.keys()) 이것이 우리가 키를 추출하고 분류 한 이유입니다.

for a,b in... 인덱스 항목을 가져오고 대각선 요소를 기반으로 값 1 또는 2를 할당합니다.

M = [ [0]*size for ... 매트릭스는 초기화 전에 사용할 수 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 인접 행렬을 그래프 객체로 어떻게 변환합니까?

분류에서Dev

파이썬에서 제공된 0과 1의 행렬을 기반으로 행렬 조합을 어떻게 생성 할 수 있습니까?

분류에서Dev

nxm 행렬의 요소에서 n 개의 사인파를 생성하려면 어떻게해야합니까?

분류에서Dev

파이썬에서 for 루프의 각 반복을 어떻게 인쇄합니까?

분류에서Dev

파이썬에서 사전의 키를 어떻게 인쇄합니까?

분류에서Dev

파이썬에서 사전의 키를 어떻게 인쇄합니까?

분류에서Dev

Java에서 인접 목록을 사용하여 방향성 그래프에 대한 깊이 우선 검색 알고리즘을 어떻게 구현합니까?

분류에서Dev

파이썬에서 팝업을 어떻게 생성합니까?

분류에서Dev

파이썬 GUI에서 RadioButton을 어떻게 생성합니까?

분류에서Dev

파이썬의 데이터 프레임에서 혼동 행렬을 어떻게 변환합니까?

분류에서Dev

쉘에서 직접 파이썬 프로그램을 어떻게 실행할 수 있습니까?

분류에서Dev

파이썬에서 각 픽셀이 임의의 색상 인 이미지를 어떻게 생성합니까?

분류에서Dev

파이썬에서 행렬의 요소를 어떻게 이동합니까?

분류에서Dev

인터프리터에서 만든 파이썬 파일을 어떻게 사용합니까?

분류에서Dev

어댑터에서 행을 클릭하면 인접 행의 뷰를 어떻게 업데이트합니까?

분류에서Dev

파이썬에서 항목 위젯의 유효성을 어떻게 확인합니까?

분류에서Dev

파이썬은 목록과 문자열에서 어떻게 음수 색인을 생성합니까?

분류에서Dev

파이썬에서 2 행과 2 열에 파이 그래프를 어떻게 표시합니까?

분류에서Dev

파이썬의 행렬 목록에서 특정 정점을 어떻게 변경합니까?

분류에서Dev

파이썬의 행렬에서 문자 문자열을 어떻게 연결합니까?

분류에서Dev

파일 스트림을 사용하여 Java에서 로그인 양식을 어떻게 생성합니까?

분류에서Dev

파이썬에서 줄을 제거한 후 두 개의 개별 목록을 어떻게 생성합니까?

분류에서Dev

개발 사이트의 색인 생성을 어떻게 방지합니까?

분류에서Dev

파이썬의 긴 정보 문자열에서 중첩 목록을 어떻게 다시 생성합니까?

분류에서Dev

C의 FUSE에서 파일을 어떻게 생성합니까?

분류에서Dev

주어진 학위 목록에서 임의 그래프 또는 해당 인접 행렬을 만듭니다.

분류에서Dev

파이썬에서 프로그래밍 오류, SQL 쿼리를 사용하여 테이블에서 튜플의 값을 어떻게 구문 분석합니까?

분류에서Dev

파이썬의 for 루프에서 동시에 두 조건을 어떻게 확인합니까?

분류에서Dev

파이썬의 기존 사전에 튜플을 어떻게 삽입합니까?

Related 관련 기사

  1. 1

    이 인접 행렬을 그래프 객체로 어떻게 변환합니까?

  2. 2

    파이썬에서 제공된 0과 1의 행렬을 기반으로 행렬 조합을 어떻게 생성 할 수 있습니까?

  3. 3

    nxm 행렬의 요소에서 n 개의 사인파를 생성하려면 어떻게해야합니까?

  4. 4

    파이썬에서 for 루프의 각 반복을 어떻게 인쇄합니까?

  5. 5

    파이썬에서 사전의 키를 어떻게 인쇄합니까?

  6. 6

    파이썬에서 사전의 키를 어떻게 인쇄합니까?

  7. 7

    Java에서 인접 목록을 사용하여 방향성 그래프에 대한 깊이 우선 검색 알고리즘을 어떻게 구현합니까?

  8. 8

    파이썬에서 팝업을 어떻게 생성합니까?

  9. 9

    파이썬 GUI에서 RadioButton을 어떻게 생성합니까?

  10. 10

    파이썬의 데이터 프레임에서 혼동 행렬을 어떻게 변환합니까?

  11. 11

    쉘에서 직접 파이썬 프로그램을 어떻게 실행할 수 있습니까?

  12. 12

    파이썬에서 각 픽셀이 임의의 색상 인 이미지를 어떻게 생성합니까?

  13. 13

    파이썬에서 행렬의 요소를 어떻게 이동합니까?

  14. 14

    인터프리터에서 만든 파이썬 파일을 어떻게 사용합니까?

  15. 15

    어댑터에서 행을 클릭하면 인접 행의 뷰를 어떻게 업데이트합니까?

  16. 16

    파이썬에서 항목 위젯의 유효성을 어떻게 확인합니까?

  17. 17

    파이썬은 목록과 문자열에서 어떻게 음수 색인을 생성합니까?

  18. 18

    파이썬에서 2 행과 2 열에 파이 그래프를 어떻게 표시합니까?

  19. 19

    파이썬의 행렬 목록에서 특정 정점을 어떻게 변경합니까?

  20. 20

    파이썬의 행렬에서 문자 문자열을 어떻게 연결합니까?

  21. 21

    파일 스트림을 사용하여 Java에서 로그인 양식을 어떻게 생성합니까?

  22. 22

    파이썬에서 줄을 제거한 후 두 개의 개별 목록을 어떻게 생성합니까?

  23. 23

    개발 사이트의 색인 생성을 어떻게 방지합니까?

  24. 24

    파이썬의 긴 정보 문자열에서 중첩 목록을 어떻게 다시 생성합니까?

  25. 25

    C의 FUSE에서 파일을 어떻게 생성합니까?

  26. 26

    주어진 학위 목록에서 임의 그래프 또는 해당 인접 행렬을 만듭니다.

  27. 27

    파이썬에서 프로그래밍 오류, SQL 쿼리를 사용하여 테이블에서 튜플의 값을 어떻게 구문 분석합니까?

  28. 28

    파이썬의 for 루프에서 동시에 두 조건을 어떻게 확인합니까?

  29. 29

    파이썬의 기존 사전에 튜플을 어떻게 삽입합니까?

뜨겁다태그

보관