# Python班
## 12/1 社課
---
## 二維串列
----
首先我們曾經提過
**串列就使把其中的元素串成一列**
元素可以是不同的形態,
比如:int(小數)、float(浮點數)
----
那我們可以試著想想看
如果list裡面放的元素類型還是list會長什麼樣子?
----
直接來試試看程式碼
```python=
list1=[[1,2,3],[4,5,6]]
print(list1)
print(list1[0])
print(list1[0][0])
'''
[[1, 2, 3], [4, 5, 6]]
[1, 2, 3]
1
'''
```
那想想看如果想要印出4,程式碼要怎麼寫呢?
----
append和pop的元素也可以是串列
達成二維陣列的效果
我們一樣直接看看程式碼
```python=
list1=[]
list2=["hello","CRC"]
list1.append([1,2,3])
list1.append(list2)
print(list1)
```
----
## 練習1
第一行輸入一個數字n
代表接下來有n行,
每行輸入一個串列(元素型態皆為整數)
請把每行輸入的串列,加入到另一個大串列中
最後輸出大串列
```
範例輸入: 範例輸出:
4 [[1, 2, 3], [4, 5, 6], [7, 8, 9], [6, 2, 5]]
1 2 3
4 5 6
7 8 9
6 2 5
```
(5分鐘後會給提示)
----
提示(請把以下程式碼####的地方改成正確的答案)
```python=
n=int(input())
list2=####
for i in range(n):
list1=list(map(int,input().split()))
list2.####(list1)
print(####)
```
----
如果我們想要像之前一樣遍歷二維串列,要怎麼辦?
----
我們一樣可以利用for迴圈
```python=
list1=[[1,2,3,4],[11,22,33,44],[111,222,333,444]]
for i in list1:
print(i)
for i in list1:
for j in i:
print(j)
'''
[1, 2, 3, 4]
[11, 22, 33, 44]
[111, 222, 333, 444]
1
2
3
4
11
22
33
44
111
222
333
444
'''
```
----
## 練習2
承上題,請幫我把大串列裡的數字分別印出來
(五分鐘後給提示)
----
```python=
n=int(input())
list2=[]
for i in range(n):
list1=list(map(int,input().split()))
list2.append(list1)
for i in ####:
for j in ####:
print(####)
```
----
來試試看最後的**魔王題**
zerojudge: a015矩陣的翻轉
(五分鐘後提示)
----
提示1
```python=
a,b=map(int,input().split())
list2=[]
for i in range(a):
list1=list(map(int,input().split()))
list2.append(####)
for i in range(####):
for j in range(####):
print(####,end=" ")
print(####)
```
----
提示2
```python=
a,b=map(int,input().split())
list2=[]
for i in range(a):
list1=list(map(int,input().split()))
list2.append(list1)
for i in range(b):
for j in range(a):
print(####,end=" ")
print(####)
```
----
{"title":"12/1","description":"12/1","contributors":"[{\"id\":\"8447d62f-b77b-4e5c-80cf-0392360451ef\",\"add\":3102,\"del\":1213}]"}