## wk07_1019_串列與元組 黃冠維 5.1 串列的使用 5.2 使用 for迴圈讀取串列 5.3 串列搜尋與計次 5.4 串列元素新增與刪除 5.5 串列排序 5.6 串列常用的方法列表 5.7 元組(Tuple) ## [inclass practice] ### {綜合演練} 實作2 輸入喜歡的水果,直到Enter鍵結束,找尋fruit = ["香蕉","蘋果","橘子","鳳梨","西瓜"]水果串列是否包含此水果,並顯示該水果是串列中的第幾項 ```python list1 = [] list2 = ["櫻桃", "葡萄", "楊桃"] list3 = [["捷克", "印度","芬蘭"], ["游泳", "籃球", "保齡球"]] print(list1) print(list2) print(list3) ``` ```python print("我最想去旅遊的地方 %s" % list3[0][0]) ``` 我最想去旅遊的地方 捷克 ```python print(list2[0:2:1]) ``` ['櫻桃', '葡萄'] ```python list2.append("香蕉") print(list2) ``` ['櫻桃', '葡萄', '楊桃', '香蕉'] ```python list2.pop() ``` '楊桃' pop可以不寫參數,就是把最後一個除掉 ```python print(list2) ``` ['櫻桃', '西瓜'] ```python list2[1] = "西瓜" print(list2) ``` ['櫻桃', '西瓜'] ```python list2.insert(0,"西瓜") print(list2) ``` ['西瓜', '櫻桃', '櫻桃', '櫻桃'] ```python list2.remove('西瓜') ``` ```python print(list2) ``` ['櫻桃', '櫻桃', '櫻桃'] ```python list2.sort() print(list2) list2.reverse() print(list2) print(max(list2)) ``` ['櫻桃', '櫻桃', '櫻桃'] ['櫻桃', '櫻桃', '櫻桃'] 櫻桃 ### {範例} 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(100)) ``` 100 79 3 1 0 數列中,第一個數字的index為0 ```python #使用 for 迴圈讀取串列元素 <list2> print(list4) for n in list4 : print(n, end = ' ') ``` [100, 89, 79] 100 89 79 ```python for i in range(len(list4)) : print(i, list4[i], sep= ",") ``` 0,100 1,89 2,79 ```python list2 = ["櫻桃", "葡萄", "楊桃"] for i in range(len(list2)) : print(i, list2, sep= ",") ``` 0,['櫻桃', '葡萄', '楊桃'] 1,['櫻桃', '葡萄', '楊桃'] 2,['櫻桃', '葡萄', '楊桃'] ```python #以串列計算班級成績 <append1> score = [100, 90, 50, 70, 100, 100, 60, 30, 70, 80] ttl = 0 avg = 0 n = 0 for score in score : ttl = ttl + score n = n + 1 avg = ttl / n print("總成績 : %3.0f , 平均成績 : %0.2f" % (ttl, avg)) ``` 總成績 : 750 , 平均成績 : 75.00 ```python score = [] inscore = 0 ttl = 0 avg = 0 while inscore !=-1 : inscore = int(input("enter your score , to end just enter -1 and enter")) if inscore != -1 : score.append(inscore) n = 0 for n in range(len(score)) : ttl = ttl + score[n] avg = ttl / n print("共有%d人" "總成績 : %3.0f" "平均成績 : %0.2f" % (n, ttl, avg)) ``` enter your score , to end just enter -1 and enter100 enter your score , to end just enter -1 and enter90 enter your score , to end just enter -1 and enter80 enter your score , to end just enter -1 and enter70 enter your score , to end just enter -1 and enter60 enter your score , to end just enter -1 and enter100 enter your score , to end just enter -1 and enter-1 共有5人總成績 : 500平均成績 : 100.00 當要相加的時候,要用range把數列的位置表示出來 for迴圈不用再n = n + 1 ```python #刪除指定串列元素 <remove> fruits = ["櫻桃","葡萄","楊桃","香蕉","酪梨","西瓜","龍眼"] to_del = "西瓜" fruits.pop(5) print(fruits) ``` ['櫻桃', '葡萄', '楊桃', '香蕉', '酪梨', '龍眼'] pop可以刪除列陣中的元素 實作6 西元2021年是牛年。請你開發一個程式: 當使用者輸入他的出生西元年之後,畫面會顯示這個西元年的生肖。 ## [afterclass practice]