목록의 각 항목은 그 자체로 싱글 톤 목록입니다. 이것에 대한 이유는 없습니다 - 당신이 이름을 지을 수 없다면 (re.findall
을 통해 re.find
을 사용하거나 re.findall
이 반환 한 목록에서 하나의 항목을 반환함으로써)이 경우와 같이 문제가됩니다. .
관계없이 목록에서 하나의 요소를 인쇄하는 것으로, print item[0]
작동해야하고, 목록의 str()
는 달리, 그것은 따옴표를 일으키는 (첫번째 repr
를 통해 항목을 실행되지 않고 어떤이 있다면 인쇄 할 수없는 문자를 이스케이프 것 문자열에서). 중복 된 싱글 톤 목록을 제거하면 print '\n'.join(items)
도 작동합니다.
theList
에 빈 목록이 있으면 코드에서 오류가 발생합니다. recentFile
에 IP와 같은 형식이없는 줄이있는 경우 빈 목록은 returnIP
에 의해 반환되고 comparisonFile
에있는 줄이면 (시작 부분에 설명이 포함 된 이름으로 열지 만 열기 chechMatch
에 설명이 포함되지 않은 이름이 반복적으로 포함 된 경우) IP 주소가 하나도 포함되어 있지 않은 경우 빈 목록이 물론 빈 목록과 동일한 매개 변수 ip
이 전달됩니다. 따라서 비 IP 이름이 recentFile
인 경우 빈 목록이 추가됩니다. 이 모든 문제는 returnIP
에서 싱글 톤 목록 대신 문자열을 반환하면 현재 줄에 IP가 없을 때 None
을 사용하고 returnIP
이 None
이면 compareFiles
으로 검사/추가를 건너 뜁니다.
정말요? 'print item [0]'을 할 때 어떤 일이 일어 났습니까? –
IndexError : 목록 색인이 범위를 벗어났습니다 – Dan
이 목록의 모양을 보여 주시겠습니까? –