개발하고 싶어요
리스트, 튜플 응용 본문
In [8]:
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity="all"
리스트 조작하기¶
리스트 추가¶
- append : 요소 하나 추가
- extend : 리스트를 연결하여 확장
- insert : 특정 인덱스에 요소 추가
In [2]:
# 리스트에 값 하나 추가
a = [10, 20, 30]
a
a.append(40) # 리스트에 40 추가
a
len(a)
[10, 20, 30]
[10, 20, 30, 40]
4
In [4]:
a = [] # 빈 리스트 만들기
a.append(10) # 리스트에 10 추가
a
[10]
In [5]:
# for문 사용하여 빈 리스트에 값 추가하기
a = []
for i in range(5):
a.append(i)
a
Out[5]:
[0, 1, 2, 3, 4]
리스트 안에 리스트 추가¶
In [6]:
a= [ 10, 20, 30]
a.append([100, 200])
a.append('cat')
a
len(a)
a[3][0]
Out[6]:
[10, 20, 30, [100, 200], 'cat']
Out[6]:
5
Out[6]:
100
리스트 확장하기¶
- extend 이용
In [9]:
a = [10, 20, 30]
a.extend([100, 200])
a
Out[9]:
[10, 20, 30, 100, 200]
In [10]:
a = [10, 20, 30]
a.insert(2, 100) # 리스트 a의 2번째 자리에 100을 넣어라
a
Out[10]:
[10, 20, 100, 30]
In [11]:
a = [10, 20, 30]
a.insert(1, [100, 200])
a
Out[11]:
[10, [100, 200], 20, 30]
In [12]:
a = [10, 20, 30]
a[1:2] = [100, 200] # 20을 100과 200으로
a
Out[12]:
[10, 100, 200, 30]
In [13]:
a = [10, 20, 30]
a[1:1] = [100, 200] # 1번 자리에 100, 200을 추가
a
Out[13]:
[10, 100, 200, 20, 30]
리스트 요소 삭제¶
리스트에서 요소 삭제¶
- pop : 마지막 요소 또는 특정 인덱스의 요소 삭제
- remove : 특정 값을 찾아서 삭제
리스트에서 특정 인덱스의 요소 삭제¶
- pop(인덱스) : 해당 인덱스의 요소 삭제
- del도 사용 가능
In [14]:
a = [10, 20, 30]
a.pop()
a
Out[14]:
30
Out[14]:
[10, 20]
In [15]:
a = [10, 20, 30]
a.pop(1)
a
Out[15]:
20
Out[15]:
[10, 30]
In [16]:
a = [10, 20, 30]
del a[1]
a
Out[16]:
[10, 30]
리스트에서 특정 값을 찾아서 삭제¶
- remove(값)
In [17]:
a = [10, 20, 30]
a.remove(20)
a
Out[17]:
[10, 30]
리스트에서 특정 인덱스 구하기¶
- index(값)
In [18]:
a = [10, 20, 30, 15, 20, 40]
a.index(10)
Out[18]:
0
특정 값의 개수 구하기¶
- count(값)
In [19]:
a = [10, 20, 30, 15, 20, 40]
a.count(20)
Out[19]:
2
리스트의 순서 뒤집기¶
- reverse()
In [20]:
a = [10, 20, 30, 15, 20, 40]
a.reverse()
a
Out[20]:
[40, 20, 15, 30, 20, 10]
리스트의 요소를 정렬¶
- sort(), sort(reverse = False) : 오름차순
- sort(reverse = True) : 내림차순
In [21]:
a = [10, 20, 30, 15, 20, 40]
a.sort() # a의 내용을 변경하여 정렬(메서드를 사용하여 변경)
a
Out[21]:
[10, 15, 20, 20, 30, 40]
In [22]:
b = [10, 20, 30, 15, 20, 40]
b # 정렬된 새 리스트를 생성, 원본은 변경되지 않음
Out[22]:
[10, 20, 30, 15, 20, 40]
리스트의 모든 요소 삭제¶
- clear()
In [23]:
a = [10, 20, 30]
a.clear()
a
Out[23]:
[]
리스트의 할당과 복사¶
- b = a : 리스트 b의 값을 변경하면 리스트 a의 값도 변경
- b = a.copy() : a, b는 서로 다른 리스트이다
In [24]:
a = [10, 20, 30, 40]
b = a
b[2] = 99
a
b
Out[24]:
[10, 20, 99, 40]
Out[24]:
[10, 20, 99, 40]
In [25]:
a = [10, 20, 30, 40]
b = a.copy()
b[2] = 100
a
b
Out[25]:
[10, 20, 30, 40]
Out[25]:
[10, 20, 100, 40]
반복문으로 리스트의 요소를 모두 출력¶
In [27]:
# for문
a = [38, 21, 53, 62, 19]
for i in a:
print(i, end = ',')
38,21,53,62,19,
인덱스와 요소를 함께 출력¶
In [28]:
a = [38, 21, 53, 62, 19]
for ind, val in enumerate(a):
print(ind, "번째 ", val, sep = "")
0번째 38
1번째 21
2번째 53
3번째 62
4번째 19
In [29]:
# while문
a = [38, 21, 53, 62, 19]
i = 0
while i < len(a):
print(a[i])
i += 1
38
21
53
62
19
리스트의 가장 작은 수, 가장 큰 수, 합계 구하기¶
가장 작은 수¶
In [30]:
a = [38, 21, 53, 62, 19, 59]
small_lst = a[0]
for i in a:
if i < small_lst:
small_lst = i
print("가장 작은 수 :", small_lst)
가장 작은 수 : 19
In [31]:
a = [38, 21, 53, 62, 19, 59]
print(min(a))
19
합계 구하기¶
In [32]:
a = [10, 20, 30, 40]
tot = 0
for i in a:
tot += i
tot
Out[32]:
100
리스트 표현 식 사용¶
- [식 for 변수 in 리스트]
- list(식 for 변수 in 리스트)
In [33]:
a = [i for i in range(10)]
a
Out[33]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [34]:
b = list(i for i in range(10))
b
Out[34]:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [35]:
a = [i * 2 for i in range(10)]
a
Out[35]:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
리스트 표현식에서 if 조건문 사용¶
- [식 for 변수 in 리스트 if 조건식]
- list(식 if 변수 in 리스트 if 조건식)
In [36]:
a = [i for i in range(10) if i % 2 == 0]
a
Out[36]:
[0, 2, 4, 6, 8]
In [37]:
lst = []
for i in range(10):
if i % 2 == 0:
lst.append(i)
lst
Out[37]:
[0, 2, 4, 6, 8]
In [38]:
lst = []
for i in range(0, 10, 2):
lst.append(i)
lst
Out[38]:
[0, 2, 4, 6, 8]
for반복문과 if 조건문을 여러 번 사용¶
In [39]:
a = [i * j for i in range(2, 5) for j in range(1, 10)]
a
Out[39]:
[2,
4,
6,
8,
10,
12,
14,
16,
18,
3,
6,
9,
12,
15,
18,
21,
24,
27,
4,
8,
12,
16,
20,
24,
28,
32,
36]
리스트에 map 사용하기¶
- list(map(함수, 리스트)
- tuple(map(함수, 튜플))
In [41]:
a = [1.2, 3.5, 5.4, 4.5]
print(a[0], "=>", int(a[0]))
1.2 => 1
In [42]:
a = [1.2, 3.5, 5.4, 4.5]
for i in range(len(a)):
print(a[i], "=>", int(a[i]))
1.2 => 1
3.5 => 3
5.4 => 5
4.5 => 4
In [43]:
a = [1.2, 3.5, 5.4, 4.5]
a = list(map(int, a))
a
Out[43]:
[1, 3, 5, 4]
튜플 응용¶
- 리스트처럼 추가, 변경, 삭제는 할 수 없다
- 요소의 정보를 구하는 메서드만 사용
- 인덱스 구하기, 특정 값의 개수 구하기, 요소 출력하기
In [44]:
# 특정 값의 인덱스 구하기
a = (38, 21, 53, 62, 19, 59)
a.index(53)
Out[44]:
2
In [45]:
# 특정 값의 개수 구하기
a = (38, 21, 53, 62, 19, 59)
a.count(20)
Out[45]:
0
In [46]:
# 요소 출력하기
a = (38, 21, 53, 62, 19, 59)
for i in a:
print(i, end = ' ')
38 21 53 62 19 59
튜플 표현식 사용¶
In [48]:
a = tuple(i for i in range(10) if i % 2 == 0)
a
Out[48]:
(0, 2, 4, 6, 8)
In [49]:
a = (1.2, 3.5, 5.4, 4.5)
a = tuple(map(int, a))
a
Out[49]:
(1, 3, 5, 4)
In [50]:
a = (1.2, 3.5, 5.4, 4.5)
max(a)
min(a)
Out[50]:
5.4
Out[50]:
1.2
'PYTHON' 카테고리의 다른 글
딕셔너리 응용하기 (1) | 2023.12.26 |
---|---|
문자열 응용하기 (0) | 2023.12.26 |
2차원 리스트 사용하기 (0) | 2023.12.26 |
별 그리기 (0) | 2023.12.26 |
break문, continue문 (0) | 2023.12.23 |