2017-03-08 11 views
-1

私は、同じソースコードを含む多くの同様のMakefileに行っています。私は内に存在するどのように多くのプロジェクト特定のソースファイル把握しようとしています 私がしたいことのようなものです:。
foo.cの4 [projA、projB、projC、projD]
bar.cに1 [projC]
それは私が各メイクファイルのための新しいlstOfProjectsを必要としているようであり、すべてのImはそれを消している。 私はそれの周りに他の多くの方法を試した タプルは、その要素の1つとしてリストを持つことができますか?ディメンションの1つとしてリストを持つ多次元リスト

for file in listOf Makefiles 
for line in Makeifle 
find code file (.c or .h) 


    try: 
     index = lstFilenames.index(strFilename)  # to determine if I have seen this file name yet 
     # Yes the file name is already in list 
     lstOfFile = lstProjectNames[index]   # get list of projects that this file is seen in 
     try: 
      fileIndex = lstOfFile.index(myProject) # check to see if the project is in the project list 
     except: # project not in list 
      lstCount[index] +1      # add one to count - I am counting the number of projects this file appears 
      lstOfProjects.append(myProject)   # append the new project to list 
    except: # file name not found in list 
      lstFilenames.append (strFilename)  # put file in file name list 
      lstCount.append(1)      # set count to one 
      lstOfProjects.append(myProject)   # add project name to project list 

#************************************************************************** End of makefile 
lstProjectNames.append(lstOfProjects) # add project list to this list (this list in indexed with teh file names and the counts) 
del lstOfProjects[:] 
+0

に削除されますので、あなたのdel lstOfProjects[:]ラインは、犯人です)2番目の行の最後の行の下に。私はまだ間違った答えを得る。あたかもmyProjectsが新しいファイルを取得したときにmyProjectsが決して新しいリストを取得しないかのように、私のlstOfProjectsでプロジェクトの新しいリストを取得できないような気がします。これらの変数はすべて = [] –

答えて

0

あなたlstProjectNamesがあなたのlstOfProjectsreferenceを保持し、その内容を削除すると、そのさえデルを除去し、lstProjectNames.append(lstOfProjectsを動かすlstProjectNames

+0

と宣言されています。各ファイルに新しいlstOfProjectsが必要です。どうすればいいのですか?私のファイルはすべて同じプロジェクトリストを持っているので、私が望むものではないことが分かります。
CMD_AUTH.h ['ARC'] Labortex.c ['ARC'、 'AFO '] –

+0

'lstOfProjects [:]'を 'lstOfProjects = []'に置き換えてみてください これはあなたの 'lstOfProjects'変数があなたのプログラム内の新しく作成されたリストを指し示し、古いものが' lstProjectNames ' – Nether

+0

Nether.Thatは、私はいくつかのマイナーな論理的な問題()と一緒に欠けていた作品でした:) –

関連する問題