짜리몽땅 매거진
[Python] 2차원 리스트&문자열 본문
2차원 리스트&문자열
2차원 리스트
a=[[1,2],[3,4],[5,6]]
a
[[1, 2], [3, 4], [5, 6]]
for i in a:
print(i)
[1, 2]
[3, 4]
[5, 6]
for i,j in a:
print(i,j,end=' ')
1 2 3 4 5 6
반복문을 2번 사용해서 2차원 리스트 출력하기
for i in a:
for j in i:
print(j,end='')
print()
12
34
56
반복문을 2번 사용하되, for range 사용해 2차원 리스트 출력하기
for i in range(len(a)):
for j in range(len(a[i])):
print(a[i][j],end='')
print()
12
34
56
while 사용해서 리스트 출력하기
i=0
while i<len(a):
j=0
while j<len(a[i]):
print(a[i][j],end=' ')
j+=1
print()
i+=1
1 2
3 4
5 6
반복문을 사용해서 리스트 만들기
a=[]
for i in range(5,30):
a.append(i)
a
[5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29]
반복문을 사용해서 2차원 리스트 만들기
a=[]
for i in range(5):
b=[]
for j in range(3):
b.append(j)
a.append(b)
a
[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]
* 추가 과제
아래의 반복문 코드를 변경하는 순간 다른 값들이 나오는지를 구체적으로 주석처리로 적어주세요.
1 --> 정상적으로 원하는 값이 나오는 코드
a = []
for i in range(4):
b= []
for j in range(5):
b.append(j)
a.append(b)
a
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
2
a = []
for i in range(4):
b= []
for j in range(5):
b.append(j)
a.append(b)
a #종속된 반복문에 안쪽 리스트, 즉 b를 5번 출력하고 이를 다시 i 루프인덱스를 통해 4번 출력하므로 총 20번 출력된다.
[[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4]]
3
a = []
b= []
for i in range(4):
for j in range(5):
b.append(j)
a.append(b)
b #b=[]가 반복문에 종속되지 않았다. 0,1,2,3,4 가 리스트 형태가 아니라 4번씩 반복되어 총 20개의 요소가 하나의 리스트로 출력된다.
[0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
a #a.append(b)까지 적용되어 b의 값을 4번 반복하는 리스트가 출력된다. 즉 b를 참조한 것이 아니라 b의 참조를 공유한 것.
[[0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4],
[0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4],
[0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4],
[0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]]
4
for i in range(4):
a = []
b= []
for j in range(5):
b.append(j)
a.append(b)
a #안쪽 반복문을 실행했을 때 a=[], b=[0,1,2,3,4]이다. 그리고 a.append(b)를 실행해 a=[[0,1,2,3,4]]가 된다. a가 반복문 바깥에서 입력되지 않고 반복문 안에 종속되어있기 때문에 b의 값이 저장되어 반복되는 것이 아니라 계속 초기화되어 결국 a는 b 리스트 한번만 포함하게 된다.
[[0, 1, 2, 3, 4]]
5
for i in range(4):
for j in range(5):
a = []
b= []
b.append(j)
a.append(b)
a #안쪽 반복문을 실행하는 동안 b의 값에 0,1,2,3,4가 계속 쌓이는 것이 아니라 b의 값이 []로 재정의되면서 마지막 4만 출력되며 b=[4]가 된다.
[[4]]
6
a = []
for i in range(4):
b= []
for j in range(5):
b.append(j)
a.append(b) #애초에 안쪽 반복문에 대한 코드가 입력되지 않았다.
File "C:\Users\rnrwnsgh\AppData\Local\Temp\ipykernel_22560\2606770375.py", line 5
b.append(j)
^
IndentationError: expected an indented block
'Data > Python' 카테고리의 다른 글
[Python] 딕셔너리 set/def/lambda (0) | 2023.07.24 |
---|---|
[Python] 문자열 데이터 응용 (0) | 2023.07.19 |
[Python] 리스트 컴프리헨션, 2차원 리스트 (0) | 2023.07.19 |
[Python] 중첩반복문, 리스트 응용 (0) | 2023.07.19 |
[Python] break, continue를 활용한 반복문 제어 (0) | 2023.07.19 |