python - 在python中请求对称矩阵

标签 python excel matrix openpyxl adjacency-matrix

我正在做一些代码来根据请求创建一个对称矩阵,但我有一个问题。
这是我拥有的代码。 *** 是我可能有错误的代码,不知道如何修复它。我尝试了很多变化。我通过键盘输入的数字不是 5,9,12,14,15 ;我输入:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
但是创建的矩阵是这样的:
cant_nodos = 6 在这种情况下。 (是一个输入)
enter image description here
Python 向我请求上对角线区域的所有单元格并自动填充下侧。

    while(cont < cant_nodos):
        contador = str(cont+1)
        nodo = str(input("Ingrese nodo " +contador+ ": "))
        if nodo not in lista_nodos:
            lista_nodos.append(nodo)
            pagina.cell(row = 1, column = cont+2, value = nodo)
            pagina.cell(row = cont+2, column = 1, value = nodo)
            cont = cont+1
        else:
            print("ERROR: Nodo existente, escoja otro: ")
            
    for fila in range(len(lista_nodos)):
        for columna in range(len(lista_nodos)):
            if fila == columna:
                valor = 0
            elif columna > fila:
                valor = int(input("Ingrese valor de nodo " +lista_nodos[fila]+ " con el nodo " +lista_nodos[columna]+ ": "))
                
            while(valor < 0):
                print("ERROR: Valor negativo. Ingrese un valor positivo")
                valor = int(input("Ingrese valor de nodo " +lista_nodos[fila]+ " con el nodo " +lista_nodos[columna]+ ": "))
        
          ***  pagina.cell(row = fila+2, column = columna+2, value = valor)
            pagina.cell(row = columna+2, column = fila+2, value = valor) ***

我需要创建一个对称矩阵。我正在使用openpyxl进行excel。
谢谢您的帮助!。

最佳答案

我解决了。如果有人有同样的问题,这是解决方案:

 while(cont < cant_nodos):
    contador = str(cont+1)
    nodo = str(input("Ingrese nodo " +contador+ ":"))
    if nodo not in lista_nodos:
        lista_nodos.append(nodo)
        pagina.cell(row = 1, column = cont+2, value = nodo)
        pagina.cell(row = cont+2, column = 1, value = nodo)
        cont = cont+1
    else:
        print("ERROR: Nodo existente, escoja otro: ")
        

for fila in range(len(lista_nodos)):
    for columna in range(len(lista_nodos)):
        
        if fila == columna:
            valor = 0
       ***     
            pagina.cell(row = fila+2, column = columna +2, value = valor) ***
            
        elif columna > fila:
            valor = int(input("Ingrese valor de nodo " +lista_nodos[fila]+" con el nodo " +lista_nodos[columna]+ ":")) 
         ***   
            pagina.cell(row = fila+2, column = columna+2, value = valor)
            pagina.cell(row = columna+2, column = fila+2, value = valor) ***
                  
        while(valor < 0):
            print("ERROR: Valor negativo. Ingrese un valor positivo")
            valor = int(input("Ingrese valor de nodo " +lista_nodos[fila]+" con el nodo " +lista_nodos[columna]+ ":"))
        
        
        
libro.save("matriz_adyacente.xlsx")

return crear_menu()

关于python - 在python中请求对称矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72072621/

相关文章:

python - 如何使用 bootstrap 设计我的 Plotly Dash 应用程序?

python - 单击模块自动完成功能在 3 组深度下不起作用

python - *.so 文件如何工作,以及它们在 UNIX 中的位置?

excel - 使用 VBA 从行中提取数据

vba - Excel 2013 VBA : Setting activeworkbook when clicking between workbooks

python - 无法在scrapy爬虫中导入我自己的模块

excel - VBA excel(宏)

r - 如何将频率分布转换为 R 中的概率分布

opencv - 如何遍历 JavaCV 中的 cvMat 矩阵?

C++:调整二维 vector 的大小