1飞蚓、編程思維
我們以課程必做練習(xí)《學(xué)習(xí)小組成績(jī)的合并排序》來(lái)進(jìn)行分析:
1-1滤港、練習(xí)目標(biāo):
我們會(huì)通過(guò)今天的作業(yè),掌握列表的兩個(gè)新運(yùn)用:合并列表和列表排序玷坠。
1-2蜗搔、練習(xí)要求:
一次測(cè)評(píng)中,老師將學(xué)習(xí)小組A和學(xué)習(xí)小組B的測(cè)評(píng)成績(jī)(滿分100分)從低到高記錄放進(jìn)兩個(gè)列表:A=[91,95,97,99]八堡,B=[92,93,96,98]。現(xiàn)在聘芜,老師有兩個(gè)需求:
(1)想將兩個(gè)小組的成績(jī)合并為一個(gè)列表兄渺,并按照從低到高的順序排序;
(2)想知道兩組的平均分汰现,以及把低于平均分的成績(jī)也打印出來(lái)挂谍。
1-3、思路分析:
1-3-1瞎饲、合并列表
- 首先合并列表口叙,根據(jù)所學(xué)知識(shí),我們有一個(gè) append()方法嗅战,可以給列表添加元素妄田,如果我們用在這道題,直接使用會(huì)怎樣呢驮捍?
A=[91,95,97,99]
B=[92,93,96,98]
A.append(B)
- 雖然兩個(gè)列表合并了疟呐,但是我們可以發(fā)現(xiàn),列表B是整個(gè)作為元素存進(jìn)了我們的列表A东且,這并不是我們想要的效果启具,那么有什么辦法把元素一個(gè)一個(gè)給提出來(lái)在放進(jìn)去呢?提出來(lái)珊泳,哦鲁冯,我們想到了我們所學(xué)的for循環(huán),遍歷取出來(lái)后再添加進(jìn)去
A=[91,95,97,99]
B=[92,93,96,98]
for I inB:
A.append(i)
print(A)
#結(jié)果為:[91,95,97,99,92,93,96,98]
-
不錯(cuò)色查,我們運(yùn)用我們所學(xué)的知識(shí)成功把兩個(gè)列表給組合起來(lái)薯演,成功完成了第一個(gè)小目標(biāo),那除了我們所學(xué)的知識(shí)外综慎,會(huì)不會(huì)有更簡(jiǎn)便的方法可以解決呢涣仿?這時(shí)我們就可以嘗試去百度一下了
- 經(jīng)過(guò)百度,我們發(fā)現(xiàn)了幾種方式可以去解決這個(gè)問(wèn)題:extend()函數(shù)、切片好港、甚至一個(gè)“+”號(hào)解決:
A=[91,95,97,99]
B=[92,93,96,98]
A.extend(B)
print(A)
A=[91,95,97,99]
B=[92,93,96,98]
A[0:0]=B
print(A)
A=[91,95,97,99]
B=[92,93,96,98]
C=A+B
print(C)
- 我們可以發(fā)現(xiàn)愉镰,解決一道題的思路有很多,有時(shí)不單單是在課程中的知識(shí)點(diǎn)钧汹,還有更多的簡(jiǎn)便方式去處理(不過(guò)前期還是建議我們多用課程的知識(shí)去解決丈探,好好鞏固學(xué)牢)
1-3-2、按照從低到高的順序排序 - 高低排序拔莱,根據(jù)我們所學(xué)的知識(shí)碗降,好像并沒(méi)有對(duì)應(yīng)的知識(shí)點(diǎn),而學(xué)過(guò)其他語(yǔ)言的同學(xué)可能了解一個(gè)方法:“冒泡排序法”(下面的代碼僅提供參考塘秦,不強(qiáng)求看懂)
A=[91,95,97,99,92,93,96,98]
for I inrange(len(A)):
for j in range(0,len(A)-i-1):
ifA[j]>A[j+1]:
A[j],A[j+1]=A[j+1],A[j]
print(A)
- 天啊讼渊,看這代碼我頭發(fā)都沒(méi)了一半,有沒(méi)有好一點(diǎn)的方法呢尊剔?沒(méi)錯(cuò)爪幻,老辦法,我們百度一下:须误、
- 我們發(fā)現(xiàn)了 sort()挨稿、sorted()方法
- 這樣,我們就成功完成了我們的第一道題啦~~~
1-3-3京痢、求平均分
- 進(jìn)入我們的第二道題奶甘,依舊一步一步來(lái),平均分=總分/個(gè)數(shù)祭椰。個(gè)數(shù)我們可以助教的筆記里找到計(jì)算函數(shù)len()臭家,而總數(shù)的話,我們也可以依次提取列表的元素再進(jìn)行相加吭产,那我們的代碼可以這樣寫(xiě):
- 沒(méi)錯(cuò)了侣监,做完了題目后,我們想要少打點(diǎn)代碼偷下懶的解決方式就是找更方便的方式去解決問(wèn)題臣淤,翻到助教之前的筆記橄霉,我們發(fā)現(xiàn)了一個(gè)函數(shù)sum(),求總和邑蒋,那太好了姓蜂,這樣就更簡(jiǎn)單了:
1-3-4、打印低于平均分的成績(jī)
- 相信解決了前面的問(wèn)題医吊,我們的思路也越來(lái)越清晰了钱慢,低于平均分的成績(jī),不就是比較得出來(lái)嗎卿堂,那怎么比較呢束莫,還是從列表一個(gè)一個(gè)提取出來(lái)懒棉,再把低的成績(jī)存在一個(gè)空列表打印出來(lái)嘛,哈哈哈: