2015. 7. 9. 13:02ㆍIT관련
출처: http://www.pythonchallenge.com/pc/def/peak.html
pronounce it
이것도 html 소스를 보면 <peakhell src="banner.p"/> 이라고 적혀 있다.
banner.p를 읽어 보라는 의미인듯.
banner.p를 열어보면 알수 없는 것들이 적혀 있다.
도통 뭔지 잘 몰라서 찾아보니 python은 object serialization을 지원하는 라이브러리 이름이 pickle이더라.
즉, pickle module을 이용하라는 뜻.
object serialization이라는게 객체 직렬화라고 말하는데 결국은 메모리 덤프떠서 파일로 저장해 두고 그걸 다시 읽어 메모리에 올리는걸 말한다.
즉, banner.p가 메모리 덤프뜬 파일이라는 거겠지.
banner.p를 load해서 출력해 보니 내용이 아래와 같이 암호 처럼 생겼더라..
자세히 보면 다중 리스트로 보인다. 그런데 '['이 아니라 '('로 되어 있네? ()는 tuple 표현방식 입니다.
[
[(' ', 95)],
[(' ', 14), ('#', 5), (' ', 70), ('#', 5), (' ', 1)],
[(' ', 15), ('#', 4), (' ', 71), ('#', 4), (' ', 1)],
...
]
2차원 리스트에 튜플이 들어가 있는 거네요.
특정 캐릭터를 이어서 나온 갯수 만큼 출력하다는 거란다. --> 결국 이것도 검색해서 알아봄. 뭐 대충 그럴거라고 생각은 했는데. ㅠㅠ 이번 문제는 혼자서 해결한게 없네. 뭐 이러면서 배우는 거겠지.
튜플 예제
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> banner = []
>>> banner.append([2,3])
>>> banner.append((1,2))
>>> print banner
[[2, 3], (1, 2)]
>>> banner[0][0] = 3
>>> print banner
[[3, 3], (1, 2)]
>>> banner[1][0] = 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>
'IT관련' 카테고리의 다른 글
Mac OS X에 Python Image Library(PIL) 설치 (0) | 2015.07.15 |
---|---|
파이썬 첼린지(Python Challenge) - now there are pairs - 6 (0) | 2015.07.14 |
파이썬 첼린지(Python Challenge) - follow the chain - 4 (0) | 2015.07.09 |
파이썬 첼린지(Python Challenge) - re - 3 (0) | 2015.07.09 |
파이썬 첼린지(Python Challenge) - ocr - 2 (0) | 2015.07.09 |