Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python程序创建的数据?_Python_List - Fatal编程技术网

如何使用python程序创建的数据?

如何使用python程序创建的数据?,python,list,Python,List,我创建了一个程序,它给了我一个包含列表的列表,然后我想打印第一个列表的第一个元素,但是当我打印时,我有一个错误,它告诉我我的列表不存在 我的计划是: def Prog1(): f=open("dimer.out","r" ) m=open("dimer3.out","w") g=f.readlines() for k in range(len(g)): if "Molecular Orbital" in g[k]: c=k

我创建了一个程序,它给了我一个包含列表的列表,然后我想打印第一个列表的第一个元素,但是当我打印时,我有一个错误,它告诉我我的列表不存在

我的计划是:

def Prog1():
    f=open("dimer.out","r" )
    m=open("dimer3.out","w")
    g=f.readlines()
    for k in range(len(g)):
        if "Molecular Orbital" in g[k]:
            c=k
    for n in range(c+1, len(g)):
        m.write(g[n])
        if "Density Matrix" in g[n+1]:
            break
    def ReadMatrix(numberOfRows):
        Ci = [];
        for i in range(0,numberOfRows):
            Ci.append([]);
        f=open("dimer3.out","r")
        lines=f.readlines()
        numberOfBlocks = math.ceil(numberOfRows / 5)
        for i in range(0,int(numberOfBlocks)):
            for j in range(i*(numberOfRows+3)+3, i*(numberOfRows+3)+3+numberOfRows):
                array = re.split('\s+', lines[j])
                for k in range(0,len(array)):
                    if re.search("\.",array[k]) is not None:
                        Ci[j - 3 - i*(numberOfRows+3)].append(array[k])
    print('Ci = ',Ci)
    ReadMatrix(int(26))
ReadMatrix(int(26))
之后写入
print(Ci[0][0])
时会出现错误。
所以我的问题是,如何在程序之外使用
Ci
列表。

将Ci作为参数传递给ReadMatrix。您可以在函数外部的作用域中声明Ci,使用Ci作为参数调用ReadMatrix,然后根据需要打印Ci

def ReadMatrix(numberOfRows,Ci):
for i in range(0,numberOfRows):
    Ci.append([]);
f=open("dimer3.out","r")
lines=f.readlines()
numberOfBlocks = math.ceil(numberOfRows / 5)
for i in range(0,int(numberOfBlocks)):
    for j in range(i*(numberOfRows+3)+3, i*(numberOfRows+3)+3+numberOfRows):
        array = re.split('\s+', lines[j])
        for k in range(0,len(array)):
            if re.search("\.",array[k]) is not None:
                Ci[j - 3 - i*(numberOfRows+3)].append(array[k])
print('Ci = ',Ci)
ReadMatrix(int(26))

Ci=[]
Readmatrix(numRows,Ci)

print Ci

“当我在ReadMatrix(int(26))之后写入print(Ci[0][0])时会出现错误”
-根据发布的代码,您实际上从未这样做过……是的,我没有写,因为它不工作。。。