#16-파이썬 기초 실습 - 리스트(List)-5
2020. 1. 27. 10:33ㆍAI & BigData/Python Basics
파이썬 기초 실습 - 리스트(List) - 5¶
1. 리스트의 슬라이싱¶
리스트의 내장 메서드¶
- append. 리스트의 맨 뒤에 데이터를 추가한다. 중간에 원하는 인덱스로 추가하고 싶으면 (객체)[(인덱스):(인덱스)]로 한다.
In [1]:
list_a = ['a', 'b', 'c','d']
list_a.append(5) # 뒤에 데이터를 추가한다.
list_a # ['a', 'b', 'c', 'd', 5]. 뒤에 데이터를 추가됐다.
Out[1]:
['a', 'b', 'c', 'd', 5]
In [2]:
list_a.append([4, 3]) # 뒤에 리스트를 추가한다.
list_a
Out[2]:
['a', 'b', 'c', 'd', 5, [4, 3]]
2. index 내가 원하는 값이 어디에 있는지 알려준다.¶
In [3]:
list_a = ['a', 'b', 'c','d',8]
list_a.index('a')
Out[3]:
0
In [4]:
list_a.index(8)
Out[4]:
4
3. insert. append와 다른 점은 중복된 값은 들어가지는 않는다¶
- 최소 2개의 값이어야 한다는 점, int값만 가능하다.
In [5]:
list_c = ['a', 'b', 'c','d',8]
list_c.insert(2, 6) # 2번 index 에 6 이란 값을 추가
list_c
Out[5]:
['a', 'b', 6, 'c', 'd', 8]
In [6]:
# 한 개라서 안 들어간다.
list_c.insert(5)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-9db4f59268e4> in <module>
1 # 한 개라서 안 들어간다.
----> 2 list_c.insert(5)
TypeError: insert() takes exactly 2 arguments (1 given)
In [7]:
list_c.insert([4], [5]) # 리스트 값도 동작을 안하고 에러를 발생한다.
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-7-2559a59f2127> in <module>
----> 1 list_c.insert([4], [5]) # 리스트 값도 동작을 안하고 에러를 발생한다.
TypeError: 'list' object cannot be interpreted as an integer
In [8]:
list_a = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
list_a.insert('b', 'g') # int값만 추가 가능하다.
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-8-f7db79627781> in <module>
1 list_a = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
----> 2 list_a.insert('b', 'g') # int값만 추가 가능하다.
TypeError: 'str' object cannot be interpreted as an integer
In [9]:
list_a = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
list_a.insert(2, 'gg') # int값만 추가 가능하다.
list_a
Out[9]:
['a', 'b', 'gg', 'c', 'd', 'e', 'f', 'g']
4. count. 동일한 데이터가 몇 개 있는지 알려주는 메서드¶
In [10]:
list_a = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4]
list_a.count(2) # 1이 한 개 있으므로 1.
Out[10]:
2
In [11]:
list_a.count(4) # 3이 두 개 있으므로 2.
Out[11]:
5
In [12]:
list_a.count(5) # 100은 없으므로 0
Out[12]:
0
In [13]:
list_a = ['p', 'y', 't', 'h', 'o', 'n', 'p']
list_a.count('p') # 문자도 카운트가 가능함 결과는 2
Out[13]:
2
In [14]:
list_a.count('y') # 문자도 카운트가 가능함 결과는 1
Out[14]:
1
5. reverse. 자료의 인덱스를 반전 시켜준다.¶
In [15]:
e = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
e.reverse()
e # [0, 9, 8, 7, 6, 5, 4, 3, 2, 1]
Out[15]:
[0, 9, 8, 7, 6, 5, 4, 3, 2, 1]
6. sort. 리스트 안의 원소들을 크기순 정렬¶
- ().sort(reverse=) reverse가 True 내림차순 False면 오름차순. 기본은 F
In [16]:
f = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
f.sort()
f # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Out[16]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [17]:
f.sort(reverse=True)
f # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
Out[17]:
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
7. remove. 지우고 싶은 데이터를 넣으면 삭제¶
- 중복된 데이터가 있으면 인덱스가 낮은 것만 삭제 즉, 하나의 데이터만 삭제.
In [18]:
g = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
g.remove(3) # 지우고 싶은 데이터는 3.
g # [1, 2, 4, 5, 6, 7, 8, 9, 0]. 3 하나만 지워졌다.
# 반복 실행해도 에러는 없다.
Out[18]:
[1, 2, 4, 5, 6, 7, 8, 9, 0]
In [19]:
#인덱스를 이용해 지우고 싶으면 ''del s[(인덱스)]'' 이런 식으로 쓰면 된다.
del g[(1)]
g # 2가 삭제 된것을 확인 할수 있다.
Out[19]:
[1, 4, 5, 6, 7, 8, 9, 0]
8. extend. 리스트를 이용해서 데이터를 추가¶
- append와 다른 점은 삽입되는 리스트가 각 요소로 들어간다.
In [20]:
e = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
e.extend([10,11]) # 들어가면 이 리스트가 하나의 인덱스가 아닌 리스트가 분해되어 두 개의 인덱스로 추가가 될 것이다.
e # [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10, 11]. 리스트로 들어간 것이 아닌 요소로 들어간 것을 확인.
Out[20]:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 10, 11]
9. pop. 값을 추출하고 Garbage Collection으로 반환한다.¶
- 인덱스를 이용하여 원하는 인덱스의 값을 출력하고 반환
In [21]:
f = [1, 2, 3]
f.pop() # 기본은 인덱스가 가장 높은 값을 출력하고 반환한다. 결과는 3.
f # [1, 2]. 없어진 것을 확인.
Out[21]:
[1, 2]
In [22]:
f.pop(0) # 인덱스를 이용하면 원하는 인덱스의 값을 출력 및 반환할 수 있다.
f # [2]. 없어진 것을 확인
Out[22]:
[2]
10. python 슬라이싱¶
In [23]:
slic_data = [1,2,3,4,5,6,7,8,9,0]
In [24]:
slic_data[1:2] # 1~ 2사이의 값 1개를 가져온다.
Out[24]:
[2]
In [25]:
slic_data[2:4] # 2 ~ 4 사의값 3 , 4 를 가져온다.
Out[25]:
[3, 4]
In [26]:
slic_data[:] # 전체 데이터를 가져온다.
Out[26]:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
In [27]:
slic_data[3:] # 3부터 끝까지의 데이터를 가져온다.
Out[27]:
[4, 5, 6, 7, 8, 9, 0]
In [28]:
slic_data[:5] # 시작 0부터 5번 안의 값만 가져온다.
Out[28]:
[1, 2, 3, 4, 5]
In [29]:
slic_data[0:9:2] # 시작과 끝을 입력 하고 2 단계 스텝으로 이동함.
Out[29]:
[1, 3, 5, 7, 9]
In [30]:
slic_data[::2] # 시작과 끝까지 2 단계 스텝으로 이동하여 홀수만 가져옴.
Out[30]:
[1, 3, 5, 7, 9]
In [31]:
slic_data[::-1] # 역순으로 데이터 가져오기
Out[31]:
[0, 9, 8, 7, 6, 5, 4, 3, 2, 1]
11. 리스트 원소의 슬라이싱¶
In [32]:
slic_data = ['Python','i','love',10,20,30]
In [33]:
slic_data
Out[33]:
['Python', 'i', 'love', 10, 20, 30]
In [34]:
slic_data[0:2]=[10,20] # slic_data의 인덱스 번호 0 , 1의 값을 10,20로 변경한다.
slic_data
Out[34]:
[10, 20, 'love', 10, 20, 30]
In [35]:
slic_data[0:3]=['I','love','Python'] # slic_data 인덱스 번호 0,1,2의 값을 변경한다.
slic_data
Out[35]:
['I', 'love', 'Python', 10, 20, 30]
In [36]:
# 인덱스 0 만 지정하고 값을 추가로 넣으면 무조건 다 들어간다.
# 이 경우 인덱싱 번호 0번에만 입력한 값 1,2,3 이 들어가게 된다.
slic_data[0:1]=[1,2,3]
slic_data
Out[36]:
[1, 2, 3, 'love', 'Python', 10, 20, 30]
In [37]:
slic_data[0:2] = [0,0,0] # 이런 경우 [0,1,2]가 [0,0,0]으로 치환된다.
slic_data
Out[37]:
[0, 0, 0, 3, 'love', 'Python', 10, 20, 30]
In [38]:
slic_data[0:3] = [1,2] # 좌측이 더 작아도 규칙은 동일하게 적용된다. [0,0,0]이 [1,2]로 치환된다.
slic_data
Out[38]:
[1, 2, 3, 'love', 'Python', 10, 20, 30]
In [39]:
slic_data[0:3] = [] # 이건 앞의 [1,2,3]을 []로 치환하는 과정이므로 삭제가 된다.
slic_data
Out[39]:
['love', 'Python', 10, 20, 30]
In [40]:
slic_data[2:5] = [] # 이건 앞의 [1,2,3]을 []로 치환하는 과정이므로 삭제가 된다.
slic_data
Out[40]:
['love', 'Python']
In [ ]:
'AI & BigData > Python Basics' 카테고리의 다른 글
#18-파이썬 기초 실습 - 리스트(List) - 7 (0) | 2020.01.29 |
---|---|
#17-파이썬 기초 실습 - 리스트(List)-6 (0) | 2020.01.28 |
#15-파이썬 기초 실습 - 리스트(List)-4 (0) | 2020.01.26 |
#14-파이썬 기초 실습 - 리스트(List) - 3 (0) | 2020.01.25 |
#13-파이썬 기초 실습 - 리스트(List) -2 (0) | 2020.01.24 |