---
# System prepended metadata

title: wk07_1019_list&tuple
tags: [week]

---

## wk07_1019_串列與元組

1. list
    - 特性
    - 宣告
    - 讀取
    - APU
2. tuple

    5.1 串列的使用
        -串列內可以不同形態

    5.2 使用 for迴圈讀取串列

    5.3 串列搜尋與計次

    5.4 串列元素新增與刪除

    5.5 串列排序

    5.6 串列常用的方法列表

    5.7 元組(Tuple)

### 【inclass practice】

#### {綜合演練}
    實作2

     輸入喜歡的水果，直到Enter鍵結束，找尋fruit = ["香蕉","蘋果","橘子","鳳梨","西瓜"]水果串列是否包含此水果，並顯示該水果是串列中的第幾項

    實作6

    西元2021年是牛年。請你開發一個程式:
    當使用者輸入他的出生西元年之後，畫面會顯示這個西元年的生肖。

#### {範例}
1. 串列初值設定 \<list1>
2. 使用 for 迴圈讀取串列元素 \<list2>
3. 利用迴圈配合索引讀取串列元素 \<list3>
4. 以串列計算班級成績 \<append1>
5. 刪除指定串列元素  \<remove>
6. 成績由大到小排序  \<sorted>
#### 【概念複習】


```python
#串列初值設定 \<list1>
list1 = []
list2 = ['香蕉','蘋果','柳丁']
list3 = [['美國','日本','韓國'],['排球','羽球','游泳']]

print(list1)
print(list2)
print(list3)
```

    []
    ['香蕉', '蘋果', '柳丁']
    [['美國', '日本', '韓國'], ['排球', '羽球', '游泳']]
    

```python
fruits = ['香蕉','蘋果','柳丁']
fruits[0:3]
```




    ['香蕉', '蘋果', '柳丁']




```python
fruits.append("櫻桃")
fruits.append("葡萄")

print(fruits)
```

    ['香蕉', '蘋果', '柳丁', '櫻桃', '葡萄']
    


```python
fruits.insert(9,"西瓜")
fruits.insert(2,"西瓜")
#插入索引值為(_,)
print(fruits)
```

    ['香蕉', '蘋果', '西瓜', '柳丁', '櫻桃', '葡萄', '西瓜']
    


```python
fruits.pop()
#把最後一個元素去掉
print(fruits)
```

    ['香蕉', '蘋果', '西瓜', '柳丁', '櫻桃', '葡萄']
    

```python
fruits.pop(0)
#把第一個去掉
print(fruits)

#(1)第二個去掉
```

    ['蘋果', '西瓜', '柳丁', '櫻桃', '葡萄']
    


```python
fruits.remove("櫻桃")
```

```python
print(fruits)
```

    ['蘋果', '西瓜', '柳丁', '葡萄']
    

```python
#取代
fruits[0] = "火龍果"
print(fruits)
```

    ['火龍果', '西瓜', '柳丁', '葡萄']
    


```python
#使用 for 迴圈讀取串列元素 \<list2>

for fruit in fruits :
    print(fruit)

for i in range(4) :
    print(i)
    
for i in range(4) :
    print(i,fruits[i])
```

    火龍果
    西瓜
    柳丁
    葡萄
    0
    1
    2
    3
    0 火龍果
    1 西瓜
    2 柳丁
    3 葡萄
    


```python
len(fruits)
```

    4

```python
fruits.index("西瓜")
```




    1




```python
#以串列計算班級成績 <append1>
scores = [100,20,90,100,90,30]
ttl = 0
avg = 0
n = 0

for score in scores :
    ttl = ttl + score
    n = n+1
avg = ttl / n

for i in range(len(scores)):
    print(i,scores[i])

print("總分 %d, 平均 %6.2f" % (ttl,avg))
```

    0 100
    1 20
    2 90
    3 100
    4 90
    5 30
    總分 430, 平均  71.67
    


```python
scores = []
in_score = 0
while in_score != -1 :
    in_score = int(input("please enter score :"))
    if in_score != -1 :
        scores.append(in_score)
    
    
print(scores)
```

    please enter score :80
    please enter score :50
    please enter score :2
    please enter score :-1
    [80, 50, 2]
    


```python
#刪除指定串列元素  \<remove>
fruits = ["香蕉","蘋果","橘子","鳳梨","西瓜"]
print(fruits)
del_fruit = input("please enter the fruit to delete")

if fruits.count(del_fruit) == 0 :
    print("查無此水果")
else:
    fruits.remove(del_fruit)
    print("我已經完成刪除")

print(fruits)
```

    ['香蕉', '蘋果', '橘子', '鳳梨', '西瓜']
    please enter the fruit to delete香蕉
    我已經完成刪除
    ['蘋果', '橘子', '鳳梨', '西瓜']
    


```python
#實作2:輸入喜歡的水果，直到Enter鍵結束，
#找尋fruits = ["香蕉","蘋果","橘子","鳳梨","西瓜"]水果串列是否包含此水果，並顯示該水果是串列中的第幾項

fruits = ["香蕉","蘋果","橘子","鳳梨","西瓜"]
del_fruit = "蘋果"




print("我已機完成刪除")
print("查無此水果")
print(fruits)


```

    我已機完成刪除
    查無此水果
    ['香蕉', '蘋果', '橘子', '鳳梨', '西瓜']
    

### 【afterclass practice】

- 綜合演練 選擇題1-10  (需抄題在markdown cell ; 有程式碼的題目要有code cell )
- 教學影音 lesson 8

1. 執行下列程式，下列結果何者正確？ (B)
    ```
    list1 = [1, 2, 3, 4, 5]
    print(list1[0])
    (A) 0 (B) 1 (C) 2 (D) [1, 2, 3, 4,5]
    ```
2. 執行下列程式，下列結果何者正確？ (A)
```
    list4 = ["香蕉", "蘋果", "橘子"]
    print(list4[-3])
    (A) 香蕉 (B) 蘋果 (C) 橘子 (D) 錯誤，索引值超過範圍
```
3. 執行下列程式，n 的值為多少？ (D)
```    
    scores = [85, 79, 93]
    n=len(scores)
    (A) 0 (B) 1 (C) 2 (D)3
```
4. 執行下列程式，n 的值為多少？ (B)
```
    list1 = ["香蕉","蘋果","橘子"]
    n = list1.index("蘋果")
    (A) 0 (B) 1 (C) 2 (D)3
```
5. 執行下列程式，下列結果何者正確？ (A)
```
    list1 = ["香蕉","蘋果","橘子"]
    n = list1.count("西瓜")
    (A) n=0 (B) n=1 (C) n=2 (D) 出現錯誤
```
6. 執行下列程式，下列結果何者正確？ (D)
```
    list1 = [1,2,3,4,5,6]
    m = list1.pop() 
    n = list1.pop(2)
    (A) m=1, n=6 (B) m=2, n=3 (C) m=6, n=2 (D) m=6, n=3
```
7. 執行下列程式，下列顯示結果何者正確? (C)
```
    list1 = [1,2,3,4,5,6]
    list1.insert(-1, "愛") 
    list1.insert(12, "台灣") 
    print(list1[5])
    (A) -1 (B) 12 (C) 愛 (D)台灣
```
8. 執行下列程式，下列顯示結果何者正確？ (C)
```
    list1 = [1,2,3,4,5,6]
    del list1[1]
    print(list1) 
    (A) [1,2,3,4,5,6] (B) [2,3,4,5,6] 
    (C) [1,3,4,5,6]   (D) [1,2,3,4,5]
```
9. 執行下列程式，下列顯示結果何者正確？ (D)
```
    list1=[3,2,1,5]
    list1.reverse()
    print(list1) 
    (A) [3,2,1,5] (B) [1,2,3,5] (C) [5,3,2,1] (D) [5,1,2,3]
```
10. 執行下列程式，下列顯示結果何者正確？ (C)
```
    list1=[3,2,1,5] 
    list2=sorted(list1,reverse=True)
    print(list2)
    (A) [3,2,1,5] (B) [1,2,3,5] (C) [5,3,2,1] (D) [5,1,2,3]
```


```python
#(1)
list1 = [1, 2, 3, 4, 5]
print("1:",list1[0])

#(2)
list4 = ["香蕉", "蘋果", "橘子"]
print("2:",list4[-3])

#(3)
scores = [85, 79, 93]
n3=len(scores)
print("3:",n3)

#(4)
n4 = list4.index("蘋果")
print("4:",n4)

#(5)
n5 = list1.count("西瓜")
print("5:",n5)

#(6)
list11 = [1,2,3,4,5,6]
m6 = list11.pop() 
n6 = list11.pop(2)
print("6:",m6,n6)

#(7)
list7 = [1,2,3,4,5,6]
list7.insert(-1, "愛") 
list7.insert(12, "台灣") 
print("7:",list7[5])

#(8)
list8 = [1,2,3,4,5,6]
del list8[1]
print("8:",list8) 

#(9)
list9=[3,2,1,5]
list9.reverse()
print("9:",list9) 

#(10)
list10=[3,2,1,5] 
list100=sorted(list10,reverse=False)
list101=sorted(list10,reverse=True)
print("10:",list100)
print("10:",list101)
```

    1: 1
    2: 香蕉
    3: 3
    4: 1
    5: 0
    6: 6 3
    7: 愛
    8: [1, 3, 4, 5, 6]
    9: [5, 1, 2, 3]
    10: [1, 2, 3, 5]
    10: [5, 3, 2, 1]
    


```python

```


```python

```
