리스트

임의의 데이타(또는 객체)들의 순서열.

대괄호로 값들을 둘러싸서 리스트를 만든다.

리스트 정의하기

>>> # 리스트 정의
>>> my_list = []
>>> my_list = list()

>>> # 리스트 원소 1개
>>> my_list = [1]
>>> my_list           # 번역기에서 변수를 출력하기 위해서 print를 사용할 필요가 없다
[1]

>>> # 문자열 값의 목록을 정의
>>> my_string_list = ['Hello', 'Sonic' ,'Text']

>>> # 복수의 자료형을 포함하는 목록을 정의
>>> multi_list = [1, 2, 'three', 4, 'five', 'six']

>>> # 목록을 포함하는 목록을 정의
>>> combo_list = [1, my_string_list, multi_list]

>>> # 목록을 포함하는 목록을 한 줄로 정의
>>> my_new_list = ['new_item1', 'new_item2', [1, 2, 3, 4], 'new_item3']
>>> print(my_new_list)
['new_item1', 'new_item2', [1, 2, 3, 4], 'new_item3']

리스트 접근하기

>>> # 목록에서 원소를 얻기
>>> my_string_list[0]
'Hello'
>>> my_string_list[2]
'Lists'

>>> # 음수 인덱스는 리스트의 마지막 원소에서 시작하여 첫 항목 쪽으로 거슬러 감
>>> my_string_list[-1]
'Lists'
>>> my_string_list[-2]
'Sonic'

>>> # 썰기(썰기는 시작 인덱스의 원소는 포함하고 끝 인덱스의 원소는 제외한다는 점에 유의)
>>> my_string_list[0:2]
['Hello', 'Jython']

>>> # 썰기를 통해 목록의 얕은 사본을 생성
>>> my_string_list_copy = my_string_list[:]

>>> my_string_list_copy
['Hello', 'Sonic', 'Lists']

>>> # 목록에서 모든 다른 원소를 반환
>>> new_list=[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

>>> # 썰기에서 세번째 인자를 사용하면 건너뛰기가 됨
>>> # 이 예제는 한 칸 씩 이동(step)
>>> new_list[0:10:1]
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

>>> # 그리고 여기서는 두 칸 씩 이동
>>> new_list[0:10:2]
[2, 6, 10, 14, 18]

>>> # 시작 인덱스를 비워두면 기본값이 0을 지정한 것과 같이 동작하며, 끝 인덱스에 대해서는 목록의 길이가 기본값임
>>> new_list[::2]
[2, 6, 10, 14, 18]

리스트 수정하기

>>> # append 메소드를 사용하여 목록에 값들을 추가
>>> new_list=['a','b','c','d','e','f','g']
>>> new_list.append('h')
>>> print new_list
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

>>> # 다른 목록을 기존 목록에 추가
>>> new_list2=['h','i','j','k','l','m','n','o','p']
>>> new_list.extend(new_list2)
>>> print new_list
['a', 'b', 'c', 'd', 'e', 'f', 'g', ‘h’,'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p']

>>> # 인덱스를 통해 특정 위치에 값을 삽입.
>>> # 이 예제에서는 'c'를 목록에서 3 번째 위치에 추가
>>> # (목록의 인덱스는 0부터 시작하므로, 인덱스 2가 실제로는 세번째 자리를 가리킴을 기억하라)
>>> new_list.insert(2,'c')
>>> print new_list
['a', 'b', 'c', 'c', 'd', 'e', 'f', 'g', 'h', ‘h’,'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p']

>>> # 인덱스를 통해 특정한 위치로 목록을 삽입
>>> another_list = ['a', 'b', 'c']
>>> another_list.insert(2, new_list)
>>> another_list
['a', 'b', [2, 4, 8, 10, 12, 14, 16, 18, 25], 'c']

>>> # 썰기 표기법을 사용하여 목록 또는 순서의 일부를 덮어씀
>>> new_listA=[100,200,300,400]
>>> new_listB=[500,600,700,800]
>>> new_listA[0:2]=new_listB
>>> print new_listA
[500, 600, 700, 800, 300, 400]

>>> # 빈 썰기 표기법을 사용하여 목록을 다른 목록에 할당
>>> one = ['a', 'b', 'c', 'd']
>>> two = ['e', 'f']
>>> one
['a', 'b', 'c', 'd']
>>> two
['e', 'f']


>>> # del 구문을 사용하여 값 또는 값의 범위를 목록으로부터 제거
>>> # 모든 다른 원소가 이동하여 빈 공간을 채움에 유의
>>> new_list3 = ['a','b','c','d','e','f']
>>> del new_list3[2]
>>> new_list3
['a', 'b', 'd', 'e', 'f']
>>> del new_list3[1:3]
>>> new_list3
['a', 'e', 'f']

>>> # del 구문을 사용하여 목록을 제거
>>> new_list3=[1,2,3,4,5]
>>> print new_list3
[1, 2, 3, 4, 5]
>>> del new_list3
>>> print new_list3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'new_list3' is not defined

>>> # pop과 remove 함수를 사용하여 목록으로부터 값을 제거
>>> print new_list
['a', 'b', 'c', 'c', 'd', 'e', 'f', 'g', 'h',’h’, 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p']

>>> # 인덱스가 2인 원소를 pop
>>> new_list.pop(2)
'c'
>>> print new_list
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',’h’, 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p']

>>> # 목록에서 처음으로 나타나는 'h' 문자를 제거
>>> new_list.remove('h')
>>> print new_list
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p']

>>> # pop() 함수를 사용하는 유용한 예제
>>> x = 5
>>> times_list = [1,2,3,4,5]
>>> while times_list:
...     print x * times_list.pop(0)
...
5
10
15
20
25

리스트 내장 함수

메소드 설명
index 주어진 값과 일치하는, 목록 내의 첫 번째 값을 반환
count 주어진 값과 동등한, 목록 내의 원소의 갯수를 반환
sort 목록 내에 포함된 원소를 정렬하여 그 목록을 반환
reverse 목록 내에 포함된 원소를 역순으로 배열하여 그 목록을 반환

예제코드

>>> # 어떤 주어진 값에 대한 인덱스를 반환
>>> new_list=[1,2,3,4,5,6,7,8,9,10]
>>> new_list.index(4)
3

>>> #  인덱스가 4인 원소의 값을 변경
>>> new_list[4] = 30
>>> new_list
[1, 2, 3, 4, 30, 6, 7, 8, 9, 10]

>>> # 이제, 값을 원상태로 되돌려놓자.
>>> new_list[4] = 5
>>> new_list
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> # 이 목록에 중복된 값을 추가하고 인덱스를 반환
>>> # 처음 나타나는 값의 인덱스를 반환함에 유의
>>> new_list.append(6)
>>> new_list
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 6]
>>> new_list.index(6)
5

>>> # 주어진 값과 동등한 원소의 갯수를 반환하도록 count() 함수를 사용
>>> new_list.count(2)
1
>>> new_list.count(6)
2

>>> # 목록의 값들을 정렬
>>> new_list.sort()
>>> new_list
[1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10]

>>> # 목록의 값들의 순서를 반대로
>>> new_list.reverse()
>>> new_list
[10, 9, 8, 7, 6, 6, 5, 4, 3, 2, 1]

리스트 순회와 탐색

>>> ourList=[1,2,3,4,5,6,7,8,9,10]
>>> for elem in ourList:
...    print elem
...
1
2
3
4
5
6
7
8
9
10

슬라이싱(slicing)을 통한 순회

>>> for elem in ourList[:5]:
...     print elem
...
1
2
3
4
5

리스트를 스택처럼

>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]

리스트와 함께 큐 사용하기

>>> from collections import deque
>>> queue = deque(["Eric", "John", "Michael"])
>>> queue.append("Terry")           # Terry arrives
>>> queue.append("Graham")          # Graham arrives
>>> queue.popleft()                 # The first to arrive now leaves
'Eric'
>>> queue.popleft()                 # The second to arrive now leaves
'John'
>>> queue                           # Remaining queue in order of arrival
deque(['Michael', 'Terry', 'Graham'])

리스트 함축

>>> # 목록 함축을 사용하여 목록에서 각각에 숫자에 2를 곱함
>>> # 목록 함축은 새로운 목록을 반환함에 유의
>>> num_list = [1, 2, 3, 4]
>>> [num * 2 for num in num_list]
[2, 4, 6, 8]

>>> # 목록 함축을 변수에 할당할 수 있다
>>> num_list2 = [num * 2 for num in num_list]
>>> num_list2
[2, 4, 6, 8]

리스트 함축 문법

[원소 (옵션 식) for 원소 in 목록 (옵션 절)]

리스트 함축에서 if 절 사용하기

>>> # 다음은 목록에서 숫자 4보다 큰 원소를 반환하는 예이다.
>>> nums = [2, 4, 6, 8]
>>> [num for num in nums if num > 4]
[6, 8]

results matching ""

    No results matching ""