티스토리 뷰
목차
리스트 (List)
[...] 형태로 파이썬 리스트(List)를 나타냅니다.
1 | a = [10, 20, 30, 40] | cs |
아래와 같이 줄을 바꿔도 허용 됩니다. 마지막 쉼표( , )는 선택 사항입니다.
1 2 3 4 5 | colors = 'red' 'green' 'blue', ] | cs |
여러 자료형을 섞어서 리스트를 만들 수 있습니다.
1 | a = [10, 'ABC'] | cs |
리스트 요소는 for를 사용하여 접근/사용 할 수 있습니다.
1 2 3 | a = [1, 2, 3, 4, 5] for n in a: print n | cs |
[ n ] 형태로 n번째 요소를 참조합니다. 첫번째 요소는 0번째로 간주합니다.
1 2 3 | a = ['A', 'B', 'C', 'D', 'E', 'F', 'G'] a1 = a [0] # 0 번째 : 'A' a2 = a [2] # 두번째 : 'C' | cs |
[ n : m ] 형태로 n번째에서 m번째 전까지(즉, m - 1번째 까지) 요소를 참좋바니다. n을 생략하면 처음부터(0부터) m번째 전까지 참조합니다.
1 2 3 4 | a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] a1 = a [2 : 4] # 두 번째부터 세 번째 : [2, 3] a2 = a [2 :] # 두 번째부터 마지막 : [2, 3, 4, 5, 6, 7, 8, 9] a3 = a [4] # 처음부터 세 번째 : [0, 1, 2, 3] | cs |
[ n : m : s ]는 s개 간격으로 참조합니다.
1 2 | a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] a1 = a[1 : 8 : 2] # 1번째 부터 7번째 까지 2개 간격 : 1, 3, 5, 7 | cs |
n, m에 음수를 지정하면 역순(뒤에서 부터)으로 계산합니다.
1 2 3 | a = ['A', 'B', 'C', 'D', 'E', 'F', 'G'] a1 = a [-1] # 마지막 문자 'G' a2 = a [-3 : -1] # 마지막에서 3번째 문자~마지막에서 첫 번째 이전 문자 : 'E', 'F' | cs |
+ 연산자를 사용하여 list를 합칠 수 있습니다.
1 | print [1, 2, 3] + [4, 5, 6] # => [1, 2, 3, 4, 5, 6] | cs |
len() 함수를 사용하여 리스트 요소 개수를 확인합니다.
1 | print len ([1, 2, 3]) # => 3 | cs |
파이썬 리스트의 리스트를 만들 수 있습니다.
1 2 3 4 5 | a = [[1, 2], [3, 4], [5, 6]] for list in a: for n in list: print n, #=> 1 2 3 4 5 6 | cs |
튜플 (Tuple)
(...)안에 요소를 삽입하는 것을 파이썬 튜플(tuple)이라고 합니다. 튜플은 list와 거의 비슷하게 사용할 수 있지만, 요소를 변경할 수 없다는 점이 다릅니다.
1 | a = (10, 20, 30, 40) | cs |
요소가 하나 뿐이라면 마지막에 쉼표(,)를 추가해야 합니다.
1 2 | a = (10) # 튜플이 아닌 숫자 10이 된다 a = (10,) # 튜플(10,)이 된다 | cs |
list 요소는 변경할 수 있지만 튜플 요소는 변경할 수 없습니다.
1 2 3 4 5 | a1 = [10, 20, 30, 40] a2 = (10, 20, 30, 40) a1[2] = 60 # 대입 가능 a2[2] = 60 # TypeError 예외 및 오류가 | cs |
튜플을 list로 변환하려면 list(), list를 튜플로 변환하려면 tuple()를 사용합니다.
1 2 | print list((1, 2, 3)) #=> [1, 2, 3] print tuple([1, 2, 3]) #=> (1, 2, 3) | cs |
딕셔너리 (dict)
{...}는 사전 파이썬 딕셔너리(dict, dictionary)라는 키-값 한 쌍의 목록입니다.
1 | d = {'손흥민': 30, '이강인': 40, '': 80} | cs |
각 요소는 다음과 같이 사용합니다.
1 2 3 | d1 = d['손흥민'] d2 = d['이강인'] d3 = d['류현진'] | cs |
딕셔너리의 모든 요소와 값을 참조하려면 items(), keys(), values(), iteritems()를 사용합니다. 참조에는 순서가 없습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | d = {'손흥민': 30, '이강인': 40, '류현진': 80} for k, v in d.items(): print k, v # 류현진 80, 손흥민 30, 이강인 40 for k in d.keys(): print k, d[k] # 이강인 40, 손흥민 30, 류현진 80 for v in d.values(): print v # 80, 30, 40 for k, v in d.iteritems(): print k, v # Tanaka 80, 손흥민 30, 이강인 40 | cs |
리스트 함수(map(), filter(), reduce())
map()은 파이썬 리스트 각 요소에 연산 처리하여 결과를 반환합니다. 아래 예제에서는 각 요소를 두배로 곱합니다.
1 2 3 4 5 6 | a = [1, 2, 3] def double(x): return x * 2 print map(double, a) #=> [2, 4, 6] : 함수 방식 print map(lambda x: x * 2, a) #=> [2, 4, 6] : lambda 방식 print [x * 2 for x in a] #=> [2, 4, 6] : 내포 표기 | cs |
filter()는 리스트 각 요소를 연산 처리하며, 결과가 참이 되는 요소를 제거합니다. 아래 예제에서는 각 요소에서 홀수만을 표기합니다.
1 2 3 4 5 6 7 | a = [1, 2, 3] def isodd(x): return x % 2 print filter(isodd, a) #=> [1, 3] : 함수 방식 print filter(lambda x: x % 2, a) #=> [1, 3] : lambda 방식 print [x for x in a if x % 2] #=> [1, 3] : 내포 표기 | cs |
reduce()는 list의 처음 두 요소를 인수로 호출하여 연산 처리합니다. 이후 결과를 하나의 요소로 인식하여 순차적으로 다른 요소와의 연산을 처리합니다. 아래 예제는 각 요소를 모두 더한 결과를 출력합니다.
1 2 3 4 5 6 | a = [1, 2, 3, 4, 5] def add(x, y): return x + y print reduce(add, a) #=> 15 : 함수 방식 print reduce(lambda x, y: x + y, a) #=> 15 : lambda 방식 | cs |
list 내포 표기
list 내포 표기를 이용해 map(), filter(), 람다를 간단하게 사용할 수 있습니다.
1 2 3 4 5 6 7 8 9 | a = [1, 2, 3] print [x * 2 for x in a] #=> [2, 4, 6] print [x * 2 for x in a if x == 3] #=> [6] print [[x, x * 2] for x in a] #=> [[1, 2], [2, 4], [3, 6]] print [(x, x * 2) for x in a] #=> [(1, 2), (2, 4), (3, 6)] b = [4, 5, 6] print [x * y for x in a for y in b] #=> [4, 5, 6, 8, 10, 12, 12, 15, 18] print [a[i] * b[i] for i in range(len(a))] #=> [4, 10, 18] | cs |
셋 (set 세트)
세트(set)는 파이썬 list 중복을 처리합니다. 세트끼리 뺄셈, OR, AND, XOR 연산을 지원합니다.
1 2 3 4 5 6 7 8 9 10 11 12 | a = set(['red', 'blue', 'green']) b = set(['green', 'yellow', 'white']) print a #=> set(['red', 'blue', 'green']) print b #=> set(['green', 'yellow', 'white']) print a - b #=> set(['red', 'blue']) print a | b #=> set(['red', 'blue', 'green', 'yellow', 'white']) print a & b #=> set(['green']) print a ^ b #=> set(['red', 'blue', 'yellow', 'white']) print 'green' in a #=> True a.add('black') print a #=> set(['red', 'blue', 'green', 'black']) | cs |
파이썬 입문 강좌 11강
- 자료형 문자열 각종 수식 정리
- 변수, 상수, 문서문자열(python docstring)
- 리스트 튜플 딕셔너리 (List, Tuple, dict)
- 제어문 - if else while for in break continue
- with assert pass del print exec 사용법
- 예외 처리 방식과 스택 추적 구현 방법
- 구문 - 문법, 주석, 들여쓰기, 인코딩 규칙
- 연산자 - 산술 비트 대입 비교 논리 조건
- def, global, lambda, iterator, yield @ 사용 방법
- 인스턴스, 메소드, 상속 등 예제 총정리
- 모듈 패키지 - 빌트인 파일 이름 사용 예제
관련 글
[파이썬 기초] 변수, 상수, 문서문자열(python docstring)