파이썬에서 리스트 안 리스트를 집합으로 만들때 해결방법
[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
'Python' 카테고리의 다른 글
⌜미국 주식으로 시작하는 슬기로운 퀀트투자⌟ 서평 (0) | 2021.10.25 |
---|---|
파이썬에서 CSV파일을 읽는 방법들. reader(),genfromtxt(),.readcsv() (0) | 2019.10.13 |