[Python] List & Tuple -1

Hyeseong·2020년 12월 2일
0

python

목록 보기
4/22
post-thumbnail

List & Tuple

여기서 다뤄 볼 것들

  • List Comprehension
  • Container
  • Generator
  • List vs Array
  • Mutable vs Immutable
  • Sort vs Sorted

상기 나열된 리스트의 것들을 다뤄보도록 할게요.
잠깐 짚고 가자면 tuple은 immutable(변경X) list는 mutable(변경 o)한거 상기 시켜주세요.즉 값을 바꿀수 있는 유형인지 아닌지 비교해 볼 수 있겠네요.

지능형 리스트(Compreshending Lists)

지능형 리스트에 대한 실습을 해볼게요.
특수기호 문자열을 unicode로 변환하여 리스트에 담아 볼게요.

Non Comprehending Lists

방법1

# unicode로 변환하는 리스트를 만들어 볼게요.

chars = '!@#$%^&*()_+'
code1 = []

for s in chars:
	code1.append(ord(s))

print('ex1-1 -', code1)

정수로 변환되어 리스트에 저장된 모습을 확인 할 수 있어요.
output

ex1-1 - [33, 64, 35, 36, 37, 94, 38, 42, 40, 41, 95, 43]

Comprehending Lists

장점: 1줄, 대용량 데이터를 다룰때 속도 짱좋음
단점: 상대적으로 가독성 떨어짐
방법2

print([ord(s) for s in '!@#$%^&*()_+'])

방법3

chars2 = '!@#$%^&*()_+'
code2 = [ord(s) for s in chars2]
print(code2)

조건문을 추가한 comprehending lists

codes3 = [ord(s) for s in chars if ord(s) > 40]
print(codes3)

# 결과: [64, 94, 42, 41, 95, 43]

map(), filter() 함수를 이용한 방법

map()

codes4 = list(map(ord, chars))
print(codes4)

# 결과: [33, 64, 35, 36, 37, 94, 38, 42, 40, 41, 95, 43]

map()와 filter() 동시 사용(feat.lambada함수)

codes5 = list(filter(lambda x : x > 40, map(ord, chars)))
print(codes5)
# 결과: [64, 94, 42, 41, 95, 43]

filter 메소드의 첫번째 인자는 람다로 정의하고 두번째는 map()정의하는데요. 1줄로 엄청나게 콤팩트하게 짤 수 있다는걸 알수 있어요.

유니코드에서 처음 입력했던 특수문자로 되돌리기

print([chr(s) for s in code1])
# 결과: ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+']
profile
어제보다 오늘 그리고 오늘 보다 내일...

0개의 댓글