tags: python

串列詳解

讀取指定List元素

fruits = ['蘋果', '香蕉', '葡萄', '西瓜', '香瓜', '芭樂'] print(fruits[0]) # 蘋果

依序讀取串列元素

fruits = ['蘋果', '香蕉', '葡萄', '西瓜', '香瓜', '芭樂'] for i in fruits: print(i)

串列切片

fruits1 = fruits[1:3] # 從第1個到第3個之前,放到fruit1變數中 print(fruits1) # ['香蕉', '葡萄'] fruits2 = fruits[:4] # 從第0個到第4個之前放到fruits2中 print(fruits2) # ['蘋果', '香蕉', '葡萄', '西瓜'] fruits3 = fruits[3:] # 從第3個開始到最後一個放到fruits3中 print(fruits3) # ['西瓜', '香瓜', '芭樂'] fruits4 = fruits[-3:] # 從倒數第3個開始到最後一個放到fruits4中 print(fruits4) # ['西瓜', '香瓜', '芭樂'] fruits5 = fruits[-1] # 取最後一個值 print(fruits5) # 芭樂 fruits6 = fruits[:] # 取得所有內容放到fruits5中 print(fruits6) # ['蘋果', '香蕉', '葡萄', '西瓜', '香瓜', '芭樂'] fruits7 = fruits[0:5:2] # 間隔1個值 print(fruits7) # ['蘋果', '葡萄', '香瓜']

可使用於串列的python內建函數

nums = [3, -4, 99, 55, 100, 55, 55, 80] print('最大值: ', max(nums)) # 取最大值 print('最小值: ', min(nums)) # 取最小值 print('個數: ', len(nums)) # 取個數 print('總和: ', sum(nums)) # 取加總 print('55出現的次數: ', nums.count(55))

覆蓋串列元素

nums[0] = 88 # 直接覆蓋 print(nums)

串列相加

fruits = ['蘋果', '香蕉', '葡萄', '西瓜', '香瓜', '芭樂'] new_fruits = ['西瓜', '草莓'] fruits += new_fruits # fruits = fruits + new_fruits 串列相加 print(fruits) # list允許內容重複! # 串列跟串列之間可以相加,但無法相減!!!

串列相乘

new_fruits = new_fruits * 3 # 內容重複3次 print(new_fruits)

串列元素內容相加

num1 = [1, 5, 10] num2 = [2, 4, 6] total = [] for i in range(len(num1)): total.append(num1[i] + num2[i]) # 串列元素相加 print(total)

刪除串列元素

fruits = ['蘋果', '香蕉', '葡萄', '西瓜', '香瓜', '芭樂'] del fruits[2] print(fruits) fruits = ['蘋果', '香蕉', '葡萄', '西瓜', '香瓜', '芭樂'] del fruits[2:5] # 刪除第2個到第5個之前的元素 print(fruits) del fruits # 刪除整個串列! print(fruits) # 會出現錯誤訊息,fruits變數不存在!

刪除指定內容的串列元素

fruits = ['蘋果', '香瓜', '香蕉', '葡萄', '西瓜', '香瓜', '芭樂', '香瓜'] fruits.remove('香瓜') # 刪除前面數來第一個符合的元素!! print(fruits)

刪除所有指定內容的串列元素

fruits = ['蘋果', '香瓜', '香蕉', '葡萄', '西瓜', '香瓜', '芭樂', '香瓜'] for i in range(fruits.count('香瓜')): fruits.remove('香瓜') print(fruits)

追加、插入、取出 元素於串列中

fruits = ['蘋果', '香蕉', '葡萄', '西瓜', '香瓜', '芭樂'] fruits.append('哈密瓜') # 追加元素於最後 print(fruits, '\n') fruits.insert(1, '酪梨') # 插入元素於指定位置 print(fruits) for i in range(len(fruits)): item = fruits.pop() # 依序從最後取出元素(不放回) print(item) print(fruits)

串列元素排序

fruits = ['蘋果', '香瓜', '一', '三', '四', '香蕉', '李子', '七', '五', '葡萄', '西瓜', '芭樂'] fruits.sort() # 中文根據筆劃數來排序! 元素順序已被改變 print(fruits) fruits.reverse() # 倒排 元素順序已被改變 print(fruits, '\n') fruits = ['蘋果', '香瓜', '一', '三'] print(sorted(fruits)) # 預覽排序結果 print(fruits, '\n') print(sorted(fruits, reverse=True)) # 預覽倒排結果 print(fruits)

練習

題目1:
有5題選擇題,每題有4個選項,請自行出題並決定每題標準答案。
由學生線上填寫答案,測驗完畢立即顯示該科成績(每題20分)
小太陽多元學習發展協會:國小學習評量題庫中心

score = 0 question = [ '下列括號中的詞語,何者用法正確?\n a. 他對自己要求嚴格,生活態度「相敬如賓」。\n b. 他捨己救人的義行,令人「循序漸進」。\n c. 陳老師「身體力行」,帶領全班學生一起響應節約用水活動。\n d. 王先生平時「談笑自如」,看起來十分嚴肅', '下列句子何者用法正確?\n a. 天氣漸漸變冷,媽媽到百貨公司幫家人併購冬衣。\n b. 藉由這個事件,他成功締造了新的話題。\n c. 今天是張老師教師生平的最後一天。\n d. 如果有任何問題,歡迎找鄭老師通商。', '下列文句,何者用字完全正確?\n a. 他像脫韁野馬般向前奔馳。\n b. 他再也壓仰不住興奮的心情,衝向前抱著媽媽大叫。\n c. 對於這場勝卷在握的比賽,他始終帶著開心的微笑。\n d. 這場棋鼓相當的比賽,讓觀眾大呼過癮。', '下列何句的修辭與「小明緊張得心臟幾乎要蹦出來」相同?\n a. 貴鄉也出產菱角嗎?\n b. 東北季風吼聲如雷。\n c. 窗外可見一望無際的太平洋。\n d. 他瘦得連一陣風都能吹走。', '下列何者的修辭與「互敬互愛」相同?\n a. 白茫茫的一片\n b. 對於這些歷史古蹟,我們應該充滿感謝。\n c. 真的有傳說中的城堡嗎?\n d. 美景令人賞心悅目。' ] answer = [ 'c', 'b', 'a', 'd', 'a' ] for num, q in enumerate(question): reply = input(str(num+1) + '. ' + q + '\n') if reply == answer[num]: score += 20 print('您本次測驗成績為: ', score)

題目2:
將以上練習改成讀取「題目檔案」及「答案檔案」,亂數出題