Python
2차원 리스트, 튜플
11mia
2020. 9. 10. 03:21
#1. 2차원 리스트
a = [[10, 20],
[50, 60, 70],
[9],
[30, 40],
[8],
[82, 9, 100, 0]]
print('a[3][1] = ', a[3][1])
print('a[5][2] = ', a[5][2])
====Result====
a[3][1] = 40
a[5][2] = 100
#2. 2차원 리스트 동적 생성
# [[1, 2], [30], [4, 50, 6]]
a = []
a.append([])
a[0].append(1)
a[0].append(2)
a.append([])
a[1].append(30)
a.append([])
a[2].append(4)
a[2].append(50)
a[2].append(6)
print(a)
====Result====
[[1, 2], [30], [4, 50, 6]]
#3. 리스트 & 튜플
- 튜플 = ((값, 값), (값, 값), (값, 값))
- 튜플 = ([값, 값], [값, 값], [값, 값])
- 리스트 = [(값, 값), (값, 값), (값, 값)]
a = ((1, 2), (3, 4), (5, 6))
b = (['a', 6], ['e', 'b'], [3.3, 4])
c = [(10, 20), (30, 40)]
# a[0][0] = 50 #TypeError: 'tuple' object does not support item assignment
# a[0] = (10, 20) #TypeError: 'tuple' object does not support item assignment
b[0][0] = 1
# b[0] = [1, 0] #TypeError: 'tuple' object does not support item assignment
print('b : ', b)
# c[0][0] = 1 #TypeError: 'tuple' object does not support item assignment
c[0] = (1, 2)
print(c)
====Result====
b : ([1, 6], ['e', 'b'], [3.3, 4])
[(1, 2), (30, 40)]
#4. pprint
from pprint import pprint
a = [[10, 20], [30, 40, 100], [50, 60]]
# indent : 들여쓰기 수
# width : 가로폭
pprint(a, indent=4, width=20)
====Result====
[ [10, 20],
[30, 40, 100],
[50, 60]]
#5. 전체 출력 (for)
a = [[10, 20], [30, 40], [50, 60]]
for x,y in a:
print(x, y)
====Result====
10 20
30 40
50 60
a = [[10, 20], [30, 40, 100], [50, 60]]
for i in a:
for j in i:
print(j, end=' ')
print()
====Result====
10 20
30 40 100
50 60
a = [[10, 20], [30, 40, 100], [50, 60]]
for i in range(len(a)):
for j in range(len(a[i])):
print(a[i][j], end=' ')
print()
====Result====
10 20
30 40 100
50 60
#6. 전체 출력 (while)
a = [[10, 20], [30, 40], [50, 60]]
i = 0
while i < len(a):
x, y = a[i]
print(x, y)
i += 1
====Result====
10 20
30 40
50 60
a = [[10, 20], [30, 40, 100], [50, 60]]
i = 0
while i < len(a):
j = 0
while j < len(a[i]):
print(a[i][j], end=' ')
j += 1
print()
i += 1
====Result====
10 20
30 40 100
50 60
#7. 동적 생성
a = []
for i in range(3):
line = []
for j in range(2):
line.append(0)
a.append(line)
print(a)
b = [[0 for j in range(2)] for i in range(3)]
print(b)
c = [[0]*2 for i in range(3)]
print(c)
====Result====
[[0, 0], [0, 0], [0, 0]]
[[0, 0], [0, 0], [0, 0]]
[[0, 0], [0, 0], [0, 0]]
a = [1, 2, 3, 4]
b = []
for i in a:
line = []
for j in range(i):
line.append(j)
b.append(line)
print(b)
c = [[i] * i for i in [1, 2, 3, 4]]
print(c)
====Result====
[[0], [0, 1], [0, 1, 2], [0, 1, 2, 3]]
[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4]]
#8. sort
- sorted(반복가능한객체, key=정렬함수, reverse=True 또는 False)
people = [
['lee', 'M', 19],
['kim', 'F', 25],
['park', 'F', 7]
]
print(sorted(people, key=lambda people: people[0]))
print(sorted(people, key=lambda people: people[1]))
print(sorted(people, key=lambda people: people[2]))
====Result====
[['kim', 'F', 25], ['lee', 'M', 19], ['park', 'F', 7]]
[['kim', 'F', 25], ['park', 'F', 7], ['lee', 'M', 19]]
[['park', 'F', 7], ['lee', 'M', 19], ['kim', 'F', 25]]
#9. copy , deepcopy
a = [
[1, 2],
[3, 4]
]
b = a
b[0][0] = 10
print('a : ', a)
print('b : ', b)
====Result====
a : [[10, 2], [3, 4]]
b : [[10, 2], [3, 4]]
a = [
[1, 2],
[3, 4]
]
b = a.copy()
b[0][0] = 10
print('a : ', a)
print('b : ', b)
====Result====
a : [[10, 2], [3, 4]]
b : [[10, 2], [3, 4]]
import copy
a = [
[1, 2],
[3, 4]
]
b = copy.deepcopy(a)
b[0][0] = 10
print('a : ', a)
print('b : ', b)
====Result====
a : [[1, 2], [3, 4]]
b : [[10, 2], [3, 4]]