2016-01-18 2 views
1
for cVariable in CFile.Variables: 
    occCtr=0 
    for cVar2 in CFile.Variables: 
     if cVariable.Name == cVar2.Name: 
      occCtr+=1 
    if occCtr > 1: 
     res = False 
     errmsg += cVariable.Name + ' is declared more than once ' + '\n' 

Это мой алгоритм. Он анализирует файл C и выясняет, объявлена ​​ли переменная более одного раза. Но когда я печатаю сообщение об ошибке, он показывает мне обе переменные с одним и тем же именем, и мне нужно только распечатать один из них.Печать переменной файла C, если объявлено более одного раза

+0

Переменная будет соответствовать самому себе. –

ответ

0
from collections import Counter 

declarations = Counter(var.Name for var in CFile.Variables) 
duplicates = [ 
    "{} is declared {} times".format(name, times) 
    for name, times in declarations.items() where times > 1 
] 
duplicates.sort() 
error_msg = "\n".join(duplicates) 
+0

Похоже, мои коллекции.py отсутствуют. Есть ли способ превратить это в цикл с условиями? Спасибо за Ваш ответ ! –

+0

@Alex Было бы лучше, если бы вы исправили свою установку –

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

  • Нет связанных вопросов^_^