list
리스트는 여러 개의 데이터를 하나의 변수에 저장하고자 할 때 매우 유용하다.
리스트에 들어있는 데이터(요솟값)를 '아이템'이라고 부른다.
리스트는 대괄호( [ ] )로 감싸 주고, 각 요소값은 쉼표( , )로 구분한다.
리스트명 = [요소1, 요소2, 요소3, . . .]
리스트의 생김새
1
2
3
4
5
|
a = []
b = [5, 6, 7]
c = ['Life', 'love', 'sports', 'too']
d = [1, 2, 'star', 'moon']
e = [7, 8, ['short', 'mind']]
|
a는 아무것도 포함하지 않는, 비어있는 리스트이다.
b는 숫자로만 구성된 숫자 리스트이다.
c는 문자열로만 구성된 문자 리스트이다.
d는 숫자와 문자열을 함께 함께 아이템으로 갖는 리스트이다.
e는 리스트 자체를 아이템으로 갖는 리스트이다.
리스트의 인덱싱
1
|
a = [1, 2, 3, '하늘']
|
a[0]은 리스트 a의 첫 번째 아이템을 말한다.
1
2
|
>>> a[0]
1
|
아이템끼리 더할 수 있다.
1
2
|
>>> a[0] + a[2]
4
|
a[-1]은 문자열과 마찬가지로 리스트 a의 마지막 아이템을 말한다.
1
2
|
>>> a[-1]
하늘
|
a 리스트에서 하늘 이라는 아이템의 인덱스 번호를 알고 싶을 때
1
2
|
>>>a.index('하늘')
3
|
아이템 수정
1
2
3
4
|
>>>test = ['Apple','max', 'circle', 'arrow']
>>>test[0] = 'banana'
>>>test
['banana','max', 'circle', 'arrow']
|
위 2 라인과 같이 리스트명(수정할 인덱스) = 값 이다.
아이템 추가
1
2
3
4
|
>>>test = ['Apple','max', 'circle', 'arrow']
>>>test.append('heart')
>>>test
['Apple','max', 'circle', 'arrow', 'heart']
|
위 2 라인과 같이 리스트명.append( 값 ) 이다.
리스트의 마지막 번째에 추가된다.
아이템 삽입
1
2
3
4
|
>>>test = ['Apple','max', 'circle', 'arrow', 'heart']
>>>test.insert(0, 'anaconda')
>>>test
['anaconda', 'Apple','max', 'circle', 'arrow']
|
위 2 라인과 같이 리스트명.insert( 인덱스, 값 ) 이다.
중복된 아이템도 허용한다.
아이템 검색
1
2
3
4
5
|
>>>test = ['Apple','max', 'circle', 'arrow', 'heart']
>>>'max' in test
True
>>>'BANANA' in test
False
|
위 2, 4 라인과 같이 값 in 리스트명 이다.
리스트에 검색하는 값이 있으면 True 를 반환하고, 없으면 False를 반환한다.
아이템 삭제
1
2
3
4
5
6
7
|
>>>test = ['Apple','max', 'circle', 'arrow', 'heart']
>>>del test[1]
>>>test
['Apple', 'circle', 'arrow', 'heart']
>>>del test[1]
>>>test
['Apple', 'arrow', 'heart']
|
위 2, 5 라인과 같이 del 리스트명[인덱스] 이다.
리스트 슬라이싱(리스트의 일부를 자를 때)
여기서 주의할 점은 n 이다.
변수 A에 List 의 인덱스 번호 m 부터 n-1 까지의 아이템을 저장한다.
1
2
3
4
5
6
7
8
9
|
>>>test = ['Apple','max', 'circle', 'arrow', 'heart']
>>>test[0:3]
['Apple','max', 'circle']
>>>test[2:4]
['circle', 'arrow']
>>>test[:2]
['Apple','max']
>>>test[2:]
['circle', 'arrow', 'heart']
|
슬라이싱에 step(간격) 주기
1
2
3
4
5
6
7
8
9
|
>>>a = [1, 5, 9, 10, 2, 4, 13]
>>>a[ : : 2]
[1, 9, 2, 13]
>>>a[ : : 3]
[1, 10, 13]
>>>a[0:0]
[]
>>>a[:]
[1, 5, 9, 10, 2, 4, 13]
|
2 라인 설명 => 2씩 건너뛴 아이템을 슬라이싱한다.
4 라인 설명 => 3씩 건너뛴 아이템을 슬라이싱한다.
6 라인 설명 => 빈 리스트를 보여준다.
8 라인 설명 => a 리스트의 전체를 보여준다.
리스트 연결
1
2
3
4
5
|
>>>test = ['Apple','max', 'circle', 'arrow', 'heart', 27]
>>>test[0] + test[2]
'Applecircle'
>>>[1, 2, 3, 4] + ['Seoul', 'sea'] + ['Alice', 'Bob']
[1, 2, 3, 4, 'Seoul', 'sea', 'Alice', 'Bob']
|
주의할 점은 아이템의 타입을 고려해야한다. 예를들면, 리스트 안의 아이템이 숫자형과 문자열이 있다면 이 둘을 합칠 수 없다.
단, 4 라인과 같이 숫자 리스트와 문자열 리스트를 합치는 것은 가능하다.
range() 함수를 이용한 리스트 쉽게 만들기
range( S , E ) 함수로 시작값(S)과 마지막값(E-1)을 정할 수 있다.
S 부터 E-1 까지 연속되는 정수를 하나씩 리스트에 추가해 만들 수 있다.
1
2
3
|
>>>ID = list(range(1,5))
>>>ID
[1, 2, 3, 4]
|
range()에 step(간격) 주기
1
2
3
4
|
>>>list(range(2, 11, 2))
[2 ,4, 6, 8, 10]
>>>list(range(9, 1, -2))
[9, 7, 5, 3]
|
list ( range ( 시작, 마지막, 간격 ) )
split() 메소드
문자열의 단어를 분리하여 리스트 생성한다.
split() => 공백을 기준으로 문자열을 나눠 리스트를 생성한다.
1
2
3
4
|
>>>a = '1 2 3 4 5'
>>>b = a.split()
>>>b
['1', '2', '3', '4', '5']
|
split(문자) => 문자를 기준으로 문자열을 나눠 리스트를 생성한다.
1
2
3
4
|
>>>a = '1:2:3:4:5'
>>>b = a.split(':')
>>>b
['1', '2', '3', '4', '5']
|
len() 함수
리스트의 개수, 문자열의 길이를 반환하는 함수이다.
1
2
3
4
5
|
>>>test = ['Apple','max', 'circle', 'arrow', 'heart', 27]
>>>len(test)
6
>>>len('hello')
5
|
list() 함수
list 형으로 형변환한다.
사용법은 list(문자열) 이다.
1
2
|
1 >>>list('hello')
2 ['h','e','l','l','o']
|
튜플(tuple)
리스트는 대괄호 [ ] 로 묶지만, 튜플은 소괄호 ( ) 로 묶어준다.
리스트와 동일하지만, 튜플은 불변객체이다.
1
2
3
4
5
6
7
8
|
>>>a = (1,2,3,5)
>>>a
(1,2,3,5)
>>>a[0] = 0
>>>a.count(3)
1
>>>a.index(5)
3
|
4 라인에서 에러가 나는 것을 확인할 수 있다.
튜플은 앞서 말했듯이, 불변객체이기 때문에 재할당할 수 없다.
5 라인에서 튜플에서 아이템 3 의 개수를 return한다.
7 라인에서 아이템 5 의 인덱스를 알려준다.
dictionary
key와 value 쌍으로 이루어진 자료구조이다.
1
2
3
|
>>>a = {'a':1,'b':2}
>>>a
{'a':1,'b':2}
|
키-값 쌍(key-value pair)으로 저장한다.
딕셔너리는 중괄호 { } 로 생성한다.
dictionary 키-값 추가
딕셔너리[key] = value
1
2
3
4
5
6
|
>>>phone_book={'신사임당':'010-1234-5678', '홍길동':'010-4532-5463'}
>>>phone_book
{'신사임당':'010-1234-5678', '홍길동':'010-4532-5463'}
>>>phone_book['이순신']='010-3251-8273'
>>>phone_book
{'신사임당':'010-1234-5678', '홍길동':'010-4532-5463', '이순신':'010-3251-8273'}
|
dictionary 키로 검색
딕셔너리[key]
1
2
3
4
5
6
7
8
|
>>>phone_book
{'신사임당':'010-1234-5678', '홍길동':'010-4532-5463', '이순신':'010-3251-8273'}
>>>phone_book['이순신']
010-3251-8273
>>>'이순신' in phone_book
True
>>>'강감찬' in phone_book
False
|
딕셔너리 key 출력 : 딕셔너리 안의 key 만 출력한다.
딕셔너리.keys()
딕셔너리 value 출력 : 딕셔너리 안의 value 만 출력한다.
딕셔너리.values()
dictionary 항목 삭제
key 해당 항목만 삭제 => del 딕셔너리[key]
모든 항목 삭제 => 딕셔너리.clear()
1
2
3
4
5
6
7
8
|
>>>phone_book
{'신사임당':'010-1234-5678', '홍길동':'010-4532-5463', '이순신':'010-3251-8273'}
>>>del phone_book['홍길동']
>>>phone_book
{'신사임당':'010-1234-5678', '이순신':'010-3251-8273'}
phone_book.clear()
phone_book
{}
|
'웹 프로그래밍 > Python' 카테고리의 다른 글
파이썬 여러가지 함수, 예제를 통한 이해 (3) | 2019.08.23 |
---|---|
파이썬 함수란 ? (0) | 2019.08.22 |
파이썬의 기초, 숫자형과 문자열 (0) | 2019.08.19 |