---
# System prepended metadata

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

---

# wk07_1019_串列與元組_B1003205 醫放三 謝彤

## [inclass practice]

1. list
2. tuple
-----

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


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


```python
list1=[]
list2=["草莓","蘋果","葡萄"]
list3=[["英國","日本","法國"],["羽球","桌球","跑步"]]

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

    []
    ['草莓', '蘋果', '葡萄']
    [['英國', '日本', '法國'], ['羽球', '桌球', '跑步']]
    


```python
print("我最想要去的國家是%s"%(list3[0][1]))  #記得0是第一項
```

    我最想要去的國家是日本
    


```python
list2.append("橘子")   #.append即新增元素進list

print(list2)
```

    ['草莓', '蘋果', '葡萄', '橘子', '橘子']
    


```python
list2.pop()   #pop可不寫參數，會刪掉list最後一個元素 
```




    '橘子'




```python
list2.pop(0) #也可寫參數，會刪掉指定參數
```




    '草莓'




```python
print(list2) #被我刪光了(按太多次)
```

    []
    


```python
list2=["草莓","蘋果","葡萄","橘子"]
```


```python
list2[1] = "哈密瓜"
print(list2)
```

    ['草莓', '哈密瓜', '葡萄', '橘子']
    


```python
list2.insert(0,"櫻桃") #.insert即插入元素(前面數字可指定位置)
print(list2)
```

    ['櫻桃', '櫻桃', '草莓', '哈密瓜', '葡萄', '橘子']
    


```python
list2.insert("火龍果") #若不指定位置，不能插入!
print(list2)
```


    ---------------------------------------------------------------------------

    TypeError                                 Traceback (most recent call last)

    Cell In[26], line 1
    ----> 1 list2.insert("火龍果") #若不指定位置，不能插入!
          2 print(list2)
    

    TypeError: insert expected 2 arguments, got 1



```python
list2.remove("哈密瓜")
print(list2)
```

    ['櫻桃', '櫻桃', '草莓', '葡萄', '橘子']
    


```python
list4=[100,89,79]
print(max(list4))  #列出list的最大值
print(min(list4))  #列出list的最小值
print(len(list4))  #列出list有幾個元素
print(list4.count(79))  #列出list有幾個79
print(list4.index(79))  #列出第一次出現79是在第幾個元素
```

    100
    79
    3
    1
    2
    


```python
#使用for迴圈讀取串列元素
print(list4)

for n in list4:
    print(n*10,end='  ') #end='  '代表每個輸出之間都有空格
```

    [100, 89, 79]
    1000  890  790  


```python
for i in range(len(list4)):   #(len(list4)表示list有幾個元素=3
    print(i)
```

    0
    1
    2
    


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

    0 , 100
    1 , 89
    2 , 79
    


```python
#以串列計算班級成績 (要用到append)

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

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



print("班級總成績為%d , 平均成績為%5.2f"%(total,avg))
```

    班級總成績為780 , 平均成績為78.00
    


```python
scores=[]

score=0
total=0
n=0
while score != -1 :  #如果輸入者輸入-1，就會跳出while loop
    score=int(input("請輸入成績"))
    if score !=-1:
        scores.append(score)
        total=total+score
        n+=1
avg=total/n


print("全班人數有%d人 ， 班級總分為%d ， 全班平均是%f" %(n,total,avg))
```

    請輸入成績100
    請輸入成績100
    請輸入成績100
    請輸入成績-1
    全班人數有3人 ， 班級總分為300 ， 全班平均是100.000000
    


```python
#刪除指定串列元素

fruits=["櫻桃", "櫻桃", "草莓", "哈密瓜", "葡萄", "橘子","香蕉","水梨","番茄"]
delete=input("請輸入要刪除的水果")   #1019課程終止處
print(fruits)
```


```python

```


```python

```


```python

```


```python

```


```python

```


```python

```


```python

```


```python

```

## [afterclass practice]

### 綜合演練

<pre>
1.執行下列程式，下列結果何者正確?
(A)0 (B)1 (C)2 (D)[1,2,3,4,5]

Answer:(B)


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

    1
    

<pre>
2.執行下列程式，下列結果何者正確?
(A)香蕉 (B)蘋果 (C)橘子 (D)錯誤，索引值超過範圍

Answer:(A)


```python
list4=["香蕉","蘋果","橘子"]
print(list4[-3])
```

    香蕉
    

<pre>
3.執行下列程式，n的值為多少?
(A)0 (B)1 (C)2 (D)3

Answer:(D)


```python
scores=[85,79,93]
n=len(scores)

print(n)
```

    3
    

<pre>
4.執行下列程式，下列結果何者正確?
(A)0 (B)1 (C)2 (D)3

Answer:(B)


```python
list1=["香蕉","蘋果","橘子"]
n=list1.index("蘋果")
print(n)
```

    1
    

<pre>
5.執行下列程式，下列結果何者正確?
(A)n=O (B)n=1 (C)n=2 (D)出現錯誤

Answer:(A)


```python
list1=["香蕉","蘋果","橘子"]
n = list1.count("西瓜")
print(n)
```

    0
    

<pre>
6.執行下列程式，下列結果何者正確?
(A)m=1,n=6 (B)m=2,n=3 (C)m=6,n=2 (D)m=6,n=3

Answer:(D)


```python
list1=[1,2,3,4,5,6]
m=list1.pop()
n=list1.pop(2)
print("m=",m,",n=",n)
```

    m= 6 ,n= 3
    

<pre>
7.執行下列程式，下列顯示結果何者正確?
(A)-1 (B)12 (C)愛 (D)台灣

Answer:(C)


```python
list1=[1,2,3,4,5,6]
list1.insert(-1,"愛") #12345愛6
list1.insert(12,"台灣") #12345愛台灣6
print(list1[5])
```

    愛
    

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

Answer:(C)


```python
list1=[1,2,3,4,5,6]
del list1[1]
print(list1)
```

    [1, 3, 4, 5, 6]
    

<pre>
9.執行下列程式，下列顯示結果何者正確?
(A)[3,2,1,5] (B)[1,2,3,5] (C)[5,3,2,1] (D)[5,1,2,3]

Answer:(D)


```python
list1=[3,2,1,5]
list1.reverse()
print(list1)
```

    [5, 1, 2, 3]
    

<pre>
10.執行下列程式，下列顯示結果何者正確?
(A)[3,2,1,5] (B)[1,2,3,5] (C)[5,3,2,1] (D)[5,1,2,3]

Answer:(C)


```python
list=[3,2,1,5]
list2=sorted(list1,reverse=True)
print(list2)
```

    [5, 3, 2, 1]
    

## [self practice]

<pre>
串列:list，可改變(刪除修改)、有順序、以索引為鍵。可提供儲存資料的記憶體空間，資料型態可以不同也可以相同(可以同時有字串或數字、英文)，有一維串列，也有多維串列
元組:tuple，跟串列長很像，但裡面內容不可變 
都用index來指定元素

<pre>
若想插入元素，可以使用append和insert
append會自動加到最後一項；insert可指定插到哪個位置
想刪除元素可以使用pop和remove