---
# System prepended metadata

title: wk07_1019_串列與元組
tags: [python]

---

### wk07_1019_串列與元組

##### Ch05_串列與元組
 <pre>
    5.1 串列的使用
    5.2 使用 for迴圈讀取串列
    5.3 串列搜尋與計次
    5.4 串列元素新增與刪除
    5.5 串列排序
    5.6 串列常用的方法列表
    5.7 元組(Tuple) </pre>

#### 【inclass practice】 


```python
list1 = []
list2 = ["apple", "banana", "peach"]
list3 = [["Cesko","Japan","Switzerland"], ["籃球","羽球","足球"]]

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

    []
    ['apple', 'banana', 'peach']
    [['Cesko', 'Japan', 'Switzerland'], ['籃球', '羽球', '足球']]
    


```python
print("The country I most wanna visit %s" % list3[0][0])
```

    The country I most wanna visit Cesko
    


```python
print(list2[0:2:1])
```

    ['apple', 'banana']
    


```python
list2.append("banana")

print(list2)
```

    ['apple', 'banana', 'peach', 'banana']
    


```python
list2.pop()
```




    'banana'




```python
list2.pop(0)
```




    'apple'




```python
print(list2)
```

    ['banana', 'peach']
    


```python
list2[1] = "watermelon"

print(list2)
```

    ['banana', 'watermelon']
    


```python
list2.insert(0, "apple")
print(list2)
```

    ['apple', 'banana', 'watermelon']
    


```python
print(list2)
```

    ['apple', 'banana', 'watermelon']
    


```python
list2.reverse()
print(list2)
```

    ['watermelon', 'banana', 'apple']
    

## {綜合演練}

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



```python
fruits = ["香蕉","蘋果","橘子","鳳梨","西瓜"]
while True:
    fruit = input("請輸入喜歡的水果(Enter 結束)：")
    if (fruit==""):
        break
    n = fruits.count(fruit) 
    if (n>0):  # 串列元素存在
        p=fruits.index(fruit)
        print("%s 在串列中的第 %d 項" %(fruit,p+1))
    else:
        print(fruit,"不在串列中!")
```

    請輸入喜歡的水果(Enter 結束)：西瓜
    西瓜 在串列中的第 5 項
    請輸入喜歡的水果(Enter 結束)：
    

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


```python
animals = "鼠牛虎免龍蛇馬羊猴雞狗豬"
year = int(input("請輸入你的出生西元年："))
print("西元{}年出生屬{}".format(year, animals[(year-2020) % 12]))
```

    請輸入你的出生西元年：2002
    西元2002年出生屬馬
    

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


```python
list4 = [100, 89, 79]

print(max(list4))
print(min(list4))
print(len(list4))
print(list4.count(79))
print(list4.index(79))
```

    100
    79
    3
    1
    2
    


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

print(list4)

for n in list4 :
    print(n * 3, end = ' ')
```

    [100, 89, 79]
    300 267 237 


```python
for i in range(len(list4)) :
    print(i, list4[i], sep = ",")
```

    0,100
    1,89
    2,79
    


```python
list2 = ["apple", "banana", "peach"]

for i in range(len(list4)) :
    print(i, list2[i], sep = ",")
```

    0,apple
    1,banana
    2,peach
    


```python
#4.以串列計算班級成績 <append1>

scores = [100, 90, 50, 70, 100, 100, 90, 90, 60, 30]
ttl = 0
avg = 0
n = 0

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

print("總成績 : %3.0f , 平均成績 : %5.2f" % (ttl, avg))
```

    總成績 : 780 , 平均成績 : 78.00
    


```python
scores =[]

inscore = 0

while inscore != -1 :
    inscore = int(input("enter score, to end just enter -1 and enter"))
    if inscore != -1 :
        scores.append(inscore)
        

        
print(scores)
```

    enter score, to end just enter -1 and enter100
    enter score, to end just enter -1 and enter100
    enter score, to end just enter -1 and enter90
    enter score, to end just enter -1 and enter90
    enter score, to end just enter -1 and enter80
    enter score, to end just enter -1 and enter-1
    [100, 100, 90, 90, 80]
    


```python
#刪除指定串列元素 <remove>

fruits = ["櫻桃","西瓜","香蕉","木瓜","葡萄","酪梨","龍眼"]

to_del = "西瓜"

print(fruits)
```

    ['櫻桃', '西瓜', '香蕉', '木瓜', '葡萄', '酪梨', '龍眼']
    

#### 【afterclass practice】

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


###### 綜合演練
1. 執行下列程式，下列結果何者正確？
<pre>
list1 = [1, 2, 3, 4, 5]

 print(list1[0])

(A) 0 (B) 1 (C) 2 (D) [1, 2, 3, 4,5]

Ans:( B )</pre> 

2. 執行下列程式，下列結果何者正確？

<pre>
list4 = ["香蕉", "蘋果", "橘子"]

print(list4[-3])

(A) 香蕉 (B) 蘋果 (C) 橘子 (D) 錯誤，索引值超過範圍

Ans:( A ) </pre>

3. 執行下列程式，n 的值為多少？

<pre>
scores = [85, 79, 93]

n=len(scores)

(A) 0 (B) 1 (C) 2 (D)3

Ans:( D )</pre> 

4. 執行下列程式，n 的值為多少？
<pre>
list1 = ["香蕉","蘋果","橘子"]

n = list1.index("蘋果")

(A) 0 (B) 1 (C) 2 (D)3

Ans:( B ) </pre>

5. 執行下列程式，下列結果何者正確？
<pre>
list1 = ["香蕉","蘋果","橘子"]

n = list1.count("西瓜")

(A) n=0 (B) n=1 (C) n=2 (D) 出現錯誤

Ans:( A ) </pre>

6. 執行下列程式，下列結果何者正確？
<pre>
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

Ans:( D ) </pre>

7. 執行下列程式，下列顯示結果何者正確？
<pre>
list1 = [1,2,3,4,5,6]

list1.insert(-1, "愛")

list1.insert(12, "台灣")

print(list1[5])

(A) -1 (B) 12 (C) 愛 (D)台灣

Ans:( C ) </pre>

8. 執行下列程式，下列顯示結果何者正確？
<pre>
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]

Ans:( C ) </pre>

9. 執行下列程式，下列顯示結果何者正確？
<pre>
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]

Ans:( D ) </pre>

10. 執行下列程式，下列顯示結果何者正確？
<pre>
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]

Ans:( C )</pre> 


```python
#1.執行下列程式，下列結果何者正確？

list1 = [1, 2, 3, 4, 5]
print(list1[0])
```

    1
    


```python
#2.執行下列程式，下列結果何者正確？
list4 = ["香蕉", "蘋果", "橘子"]
print(list4[-3])
```

    香蕉
    


```python
#3.執行下列程式，n 的值為多少？
scores = [85, 79, 93]
n=len(scores)
print(n)
```

    3
    


```python
#4.執行下列程式，n 的值為多少？
list1 = ["香蕉","蘋果","橘子"]
n = list1.index("蘋果")
print(n)
```

    1
    


```python
#5.執行下列程式，下列結果何者正確？
list1 = ["香蕉","蘋果","橘子"]
n = list1.count("西瓜")
print(n)
```

    0
    


```python
#6.執行下列程式，下列結果何者正確？
list1 = [1,2,3,4,5,6]
m = list1.pop()
n = list1.pop(2)
print("m =",m, "n =",n)
```

    m = 6 n = 3
    


```python
#7.執行下列程式，下列顯示結果何者正確？
list1 = [1,2,3,4,5,6]
list1.insert(-1, "愛")

list1.insert(12, "台灣")

print(list1[5])
```

    愛
    


```python
#8.執行下列程式，下列顯示結果何者正確？
list1 = [1,2,3,4,5,6]
del list1[1]

print(list1)
```

    [1, 3, 4, 5, 6]
    


```python
#9.執行下列程式，下列顯示結果何者正確？
list1=[3,2,1,5]
list1.reverse()

print(list1)
```

    [5, 1, 2, 3]
    


```python
#10.執行下列程式，下列顯示結果何者正確？
list1=[3,2,1,5]
list2=sorted(list1,reverse=True)

print(list2)
```

    [5, 3, 2, 1]
    
