반응형
목록의 내용을 다른 목록에 추가하는 것이 타당한 지 이해하려고합니다.
루프 함수를 통해 만든 첫 번째 목록이 있는데, 파일에서 특정 줄을 가져 와서 목록에 저장합니다.
그런 다음 두 번째 목록을 사용하여 이러한 줄을 저장하고 다른 파일에 대해 새주기를 시작합니다.
내 생각은 for주기가 완료되면 목록을 가져 와서 두 번째 목록에 덤프 한 다음 새주기를 시작하고 첫 번째 목록의 내용을 두 번째 목록에 다시 덤프하지만 추가하면 두 번째 목록이 내 루프에서 생성 된 모든 작은 목록 파일의 합계입니다. 특정 조건이 충족되는 경우에만 목록을 추가해야합니다.
다음과 유사합니다.
# This is done for each log in my directory, i have a loop running
for logs in mydir:
for line in mylog:
#...if the conditions are met
list1.append(line)
for item in list1:
if "string" in item: #if somewhere in the list1 i have a match for a string
list2.append(list1) # append every line in list1 to list2
del list1 [:] # delete the content of the list1
break
else:
del list1 [:] # delete the list content and start all over
이것이 말이됩니까 아니면 다른 경로로 가야합니까?
로그 목록이 길고 각 텍스트 파일이 꽤 크기 때문에 너무 많은주기를 차지하지 않는 효율적인 무언가가 필요합니다. 그래서 목록이 목적에 맞을 것이라고 생각했습니다.
해결 방법
당신은 아마 원합니다
list2.extend(list1)
대신에
list2.append(list1)
차이점은 다음과 같습니다.
>>> a = range(5)
>>> b = range(3)
>>> c = range(2)
>>> b.append(a)
>>> b
[0, 1, 2, [0, 1, 2, 3, 4]]
>>> c.extend(a)
>>> c
[0, 1, 0, 1, 2, 3, 4]
list.extend ()
는 임의의 이터 러블을 허용하므로
for line in mylog:
list1.append(line)
으로
list1.extend(mylog)
참조 페이지 https://stackoverflow.com/questions/8177079
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python (Regex)에서 숫자 삭제 (0) | 2020.09.24 |
---|---|
파이썬 Python : 최대 재귀 깊이 초과 (0) | 2020.09.24 |
파이썬 Python의 고유 세션 ID (0) | 2020.09.24 |
파이썬 클래스 조롱 : Mock () 또는 patch ()? (0) | 2020.09.24 |
파이썬의 2 차원 배열 (0) | 2020.09.24 |
댓글