[python] 리스트를 동일한 크기로 분할 - list comprehension

eun·2022년 5월 30일
0

python

목록 보기
1/4
post-thumbnail

list comprehension 사용하기

my_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']

# 한 리스트에 몇개씩 담을지 결정

n = 3
result = [my_list[i * n:(i + 1) * n] for i in range((len(my_list) + n - 1) // n )] 

print(result) 

결과

[['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'], ['j', 'k']]

코드 적용

특정 사이트에서 약 2000개의 키워드에 해당하는 검색량을 끌고오고 싶다. 그런데 해당 사이트에는 한 번에 최대 100개의 키워드만 넣을 수 있게 제한되어 있다. 100개씩 20번을 넣어서 뽑아와도 되지만 상당히 비효율적이고, 키워드 개수가 훨씬 많아졌을 때는 불가능한 방법이므로, 생각해낸 방법은

  • 1) pandas 로 키워드가 리스트업 되어 있는 파일 불러오고, 키워드 칼럼을 리스트로 변환한다.

     my_list = df['키워드'].to_list()
  • 2) my_list 를 100개 크기로 동일하게 분할한다. 즉, 키워드가 2000개라면 100개씩 20개의 리스트로 분할한다.

    📌 여기서 list comprehension 사용

    # 키워드가 n개씩 들어있는 리스트로 분할하기
    n = 100
    result = [my_list[i * n:(i + 1) * n] for i in range((len(my_list) + n - 1) // n )] 
  • 3) 중첩 for문을 이용해서 100개씩 묶은 각 result 리스트 내에서도 키워드가 한 개씩 풀려서 검색창에 입력되게끔 했다.

    for n in range(len(result)):
            for i in range(len(result[n])):
                    result2 = result[n][i]
                    search.send_keys(result2)
    


profile
study archive 👩‍💻

0개의 댓글