글 작성자: 개발섭

[Python] - 웹 크롤링으로 강원대학교 컴퓨터공학과 공지사항 텔레그램 봇 만들기에서 저는 한가지 기능을 만들어내고 있었는데요.  그 기능은 바로 최근 크롤링한 리스트와 이전 크롤링한 리스트를 비교해서 최신 게시물이 있으면 그 최신 게시물만 뱉어낼수 있게끔 처리하는 작업을 만들어내고 있었습니다.

이런 방식을 위해서는 list를 Set으로 만들어줘야했는데요. 저는 list안에 크롤링한 데이터들을 List로 가지고 있어서 Set으로 만들어주는데 문제가 발생했습니다. ㅠ

TypeError: unhashable type: 'list'

파이썬을 많이 접해보지 않은 나로써 좀 당황하고 얼좀 탔는데 해결법은 예상보다 단순했는데요..

파이썬에서 List는 변동가능하기때문에, 만들어지지 않는 것인데요. 즉, List를 Tuple로 만들어줘야 set이 문제 없이 만들어집니다. ㅠ

또한, 리스트안의 리스트 중 하나의 값만 달라도 다른 것으로 인식하기 때문에, 이런점은 유의해주셔야합니다. 

 setChange = set(tuple(row) for row in changeList)
 setCheck = set(tuple(row) for row in checklist)

 

https://stackoverflow.com/questions/26514179/set-of-list-of-lists-in-python

 

set of list of lists in python

I am having a list of lists : mat = [[1,2,3],[4,5,6],[1,2,3],[7,8,9],[4,5,6]] and I want to convert into a set i.e. remove the repeating lists and creating a new list out of it which will only co...

stackoverflow.com