프로그래밍
통상 프로그래밍은 알고리즘과 자료구조로 나눌 수 있습니다. 알고리즘이 특정 문제를 해결하기 위한 규칙 또는 단계라면, 자료구조는 컴퓨터내에서 자료를 구조화하는 특별한 방식이라고 할 수 있습니다.
무엇이 컬렉션이 아닌가?
컬렉션이 무엇인지 알기 위해 우리는 컬렉션이 아닌 것을 알아야 합니다. 하나의 변수에 새로운 값을 할당하게 되면 기존의 값은 사라지고 그 자리에 대체하게 됩니다. 즉, 하나의 변수에는 하나의 값만 할당하는 것을 우리는 배웠습니다. 하나의 변수에 여러 값을 넣는 것이 가능하도록 하는 것이 컬렉션입니다.
리스트 (List)
리스트는 컬렉션의 한 종류입니다.
1. 리스트의 각 항목들은 '[]'로 둘러싸게 됩니다.
2. 리스트 내의 항목들에 대한 구분은 ,(콤마)로 합니다.
3. 리스트 내에 또 다른 리스트를 내포할 수 있습니다.
4. 비어있는 리스트를 만들 수 있습니다.
5. 리스트의 항목들에 인덱스 값으로 접근할 수 있습니다.
6. 리스트의 항목들은 바뀔 수 있습니다.
friends = ['Joseph', 'Glennn', 'Sally']
carryon = ['socks', 'shirt', 'perfume']
colors = ['red', ['yellow', 'blue'], 'black']
emptyList = []
print(colors[0])
#red라고 출력됨
lotto = [2, 14, 24, 41, 63]
print(lotto)
#[2, 14, 26, 41, 63]이 출력됨
lotto[2] = 28
print(lotto)
#[2, 14, 26, 41, 63]이 출력됨
len()
리스트에서도 해당 리스트가 몇개의 항목을 가지고 있는 지를 len()함수를 통해서 확인할 수 있습니다.
friends = ['Joseph', 'Glenn', 'Sally']
print(len(friends))
#3으로 출력됨.
range()
range() 함수는 인자로 전달되는 값에 따라서 숫자로 이루어진 리스트를 반환하게 됩니다.
for i in range(5):
print(i)
#0
#1
#2
#3
#4
연산자 활용
리스트 병합
리스트 타입도 '+' 연산자를 활용해서 서로 다른 리스트를 더할 수 있습니다.
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print(c)
#[1, 2, 3, 4, 5, 6]로 출력됨
리스트 슬라이싱
리스트도 :(콜론)을 이용해 자를 수 있습니다. 중요한 것은 마지막 숫자의 인덱스 항목은 포함되지 않는다는 것입니다.
t = [9, 41, 12, 3, 74, 15]
print(t[1:3])
print(t[:4])
print(t[3:])
print(t[:])
#[41, 12]
#[9, 41, 12, 3]
#[3, 74, 15]
#[9, 41, 12, 3, 74, 15]
dir() 메소드
특정 타입에서 사용할 수 있는 메소드의 목록들을 볼 수 있는 함수도 있다.
x = list()
print(dir(x))
리스트 만들기
빈 리스트 만들기 - 항목 추가하기 - 항목 정렬하기 - in을 활용해 'Glenn'이 친구목록에 있는 지 확인하기
friends = list()
friends.append('Joseph')
friends.append('Glenn')
friends.append('Sally')
print(friends)
#['Joseph', 'Glenn', 'Sally']
friends.sort()
print(friends)
#['Glenn', 'Joseph', 'Sally']
print('Glenn' in friends)
#True
문자열과 리스트
문자열과 리스트는 잘 어울려 사용됩니다.
abc = 'With three words'
stuff = abc.split()
print(stuff)
#['With', 'three', 'words']로 출력됩니다.
구분자
명시적으로 구분자를 넣어주지 않으면 빈칸을 구분자로 인지하고 나누게 됩니다.
words2 = 'first;second;third'
stuff2 = words2.split()
print(stuff2)
#['first;second;third']
stuff2 = words2.split(';')
print(stuff2)
#['first', 'second', 'third']
이메일 주소 추출하기
지금까지 배운 메소드와 자료구조를 활용하면 원하는 값만 추출할 수 있습니다.
line = 'From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008'
#line에 uct.ac.za만 추출하는 방법을 찾아보도록 하겠습니다
words = line.split()
#words는 해당 라인을 빈칸을 구분자로 하여 리스트로 저장됩니다.
print(words[1])
#stephen.marquard@uct.ac.za 출력됨
email = words[1]
address = email.split('@')
print(address)
#['stephen.marquard', 'uct.ac.za']가 출력됩니다.
print(address[1])
#uct.ac.za가 출력됨
'마케팅 > 데이터분석(파이썬)' 카테고리의 다른 글
(파이썬/python) 모두를 위한 프로그래밍 : 파이썬 챕터 10 / 튜플 (0) | 2021.11.18 |
---|---|
(파이썬/python) 모두를 위한 프로그래밍 : 파이썬 챕터 9 / 딕셔너리 (0) | 2021.11.18 |
(파이썬/python) 모두를 위한 프로그래밍 : 파이썬 챕터 7 / 파일 (0) | 2021.11.17 |
(파이썬/python) 모두를 위한 프로그래밍 : 파이썬 챕터 6 / 문자열 (0) | 2021.11.16 |
(파이썬/python) 모두를 위한 프로그래밍 : 파이썬 챕터 5 / 루프 (0) | 2021.10.18 |