系統(tǒng)學(xué)測試 - python的列表和元組使用

1. 列表 list

存儲(chǔ)一系列名字锉屈,存儲(chǔ)一些新聞條目您市,可以使用列表的格式嘿架。

Name = “張三”
Name2 = “l(fā)isi ”
#以上變量都是用來存儲(chǔ)單個(gè)數(shù)據(jù)的變量
#而列表是可以存儲(chǔ)多個(gè)數(shù)據(jù)的高級(jí)數(shù)據(jù)類型 -- 而稱之為容器
List = [“張三”,”李四”,”王五”]

1.1. 列表的基本形式

列表中不僅僅可以存儲(chǔ)相同的數(shù)據(jù)鹦倚,也可以存儲(chǔ)不同的數(shù)據(jù)類型
names=["張三","李四","王五","趙六"]
ages=[1,4,6,9]
s=[1,"哈哈","呵呵",True]

1.2. 獲取列表中元素

1.2.1. 根據(jù)下標(biāo)(索引)獲取

#可以根據(jù)下標(biāo)來對(duì)列表中的元素進(jìn)行獲取
#注意:列表中下標(biāo)對(duì)應(yīng)的是一個(gè)元素 是越,其他的和字符串中的下標(biāo)使用是一致的
print(names[0])
print(names[1])
print(names[-1])   #得到的是列表中從右向左的第一個(gè)元素。但是一般不會(huì)使用負(fù)數(shù)的下標(biāo)

1.2.2. 切片操作

列表的切片操作和字符串中的切片操作一致染坯,不一樣的就是 列表切片得到的結(jié)果還是一個(gè)列表類型均芽,哪怕最后切片只得到一個(gè)數(shù)據(jù)。也是列表類型的數(shù)據(jù)
print(names[0:3])      #索引0-2的元素
print(names[0::2])     #步長為2单鹿,索引0-2的元素
print(names[::-1])      #步長為1掀宋,倒序遍歷
print(names[3:0:-1])  #步長為-1,倒序遍歷仲锄,索引3 2 1

1.3. 列表的循環(huán)遍歷

1.3.1. for循環(huán)

names=["張三","李四","王五","趙六"]
for name in names:
     print(name)
最基本的列表循環(huán)遍歷劲妙,將列表中的每一個(gè)元素分別賦值給name變量,然后進(jìn)行打印展示昼窗。

1.3.2. for循環(huán)第二種方式

names=["張三","李四","王五","趙六"]
#先獲取列表的長度
len=len(names)
#長度范圍從0到len
for i in range(0,len):
    #根據(jù)下標(biāo)獲取元素
    print(names[i])

1.3.3. while循環(huán)遍歷

names=["張三","李四","王五","趙六"]
#先獲取列表的長度
len=len(names)
i=0
while i < len:
    print(names[i])   #也是通過遍歷下標(biāo)是趴,在通過下標(biāo)來獲取對(duì)應(yīng)的元素展示信息
    i+=1

1.4. 列表常見的操作

1.4.1. 修改元素

修改元素的時(shí)候,只需要獲取到對(duì)應(yīng)的下標(biāo)澄惊,就可以重新賦值唆途,就完成了修改
nums[1]=100   #注意下標(biāo)一定要是存在的下標(biāo)才可以

1.4.2. ** append 增加元素**

names=["張三","李四","王五","趙六"]
names.append("周七")
print(names)  #添加的名字會(huì)顯示再names列表的最后位置

1.4.3. extend 可以將另外一個(gè)集合中的元素逐一添加到列表中

groupNames=["張三","李四","王五","趙六"]
group2=["哈哈","吼吼"]
groupNames.extend(group2)
print(groupNames) #將小列表中的兩個(gè)內(nèi)容逐一添加到了大列表中

1.4.4. insert 在指定位置插入元素

insert(index,object)  #在指定位置處插入元素object

nums=[1,3,4,5]
nums.insert(0,1)#在0索引值處插入1
nums.insert(1,8)#在1索引值處插入8
print(nums)

1.4.5. 查找元素 in

python中常見的查找方法為:
in(存在),如果存在那么結(jié)果為True富雅,否則為False
not in (不存在),如果不存在那個(gè)結(jié)果為True,否則為False

姓名查找案例:
names=["張三","李四","王五"]
name=input("請(qǐng)輸入要查詢的姓名?\n")
if name in names:
    print("存在")
else:
    print("不存在")

1.4.6. index count

index 獲取某元素在列表中的索引值
count 獲取元素在列表中出現(xiàn)的次數(shù)

names=["張三","李四","王五","李四","王五"]
name="李四"
print(names.index(name))#查找索引
print(names.count(name))#查找個(gè)數(shù)

1.4.7. 刪除元素

del:根據(jù)元素下標(biāo)進(jìn)行刪除

starNames=["張三","李四","王五","李四","王五"]
#del 根據(jù)下標(biāo)進(jìn)行刪除
del starNames[2]
print(starNames) #["張三","李四","李四","王五"]

pop:刪除最后一個(gè)元素肛搬,并能獲取到最后一個(gè)

lastName=starNames.pop()
print(lastName)#王五
print(starNames)#["張三","李四","李四"]

remove:根據(jù)元素的值進(jìn)行刪除

starNames.remove("李四")#["張三","李四"]
print(starNames)

1.4.8. reverse 反轉(zhuǎn) sort 排序

reverse

scores=[89,78,90,70,100]
scores.reverse()#將原來的反過來 #[100,70,90,78,89]

sort

scores=[89,78,90,70,100]
scores.sort() #默認(rèn)從小到大[70,78,89,90,100]
scores.sort(reverse=True) #反轉(zhuǎn)成從大到小[100,90,89,78,70]
print(scores)

1.4.9. 冒泡排序

冒泡排序:及將列表中的數(shù)字按從小到大的順序進(jìn)行排序

ages = [123,23,1,45,67,8,90]
for i in range(0,len(ages)-1):
    for j in range(0,len(ages)-1-i):
        if ages[j] > ages[j+1]:
            ages[j],ages[j+1] = ages[j+1],ages[j] 

print(ages)

1.5. 列表的嵌套

一個(gè)學(xué)校没佑,有三個(gè)班級(jí),班級(jí)里邊分別有一些學(xué)生温赔。用列表實(shí)現(xiàn)蛤奢。分別 計(jì)算每個(gè)班級(jí)的人數(shù),并把每個(gè)班級(jí)的學(xué)生信息打印出來陶贼。

allNames=[["張三","李四","王五"],["小黑","小白"],["如花","小強(qiáng)","鬼見愁","鬼腳七"]]
i=1
for names in allNames:
    print("班級(jí)%d人數(shù)是%d"%(i,len(names)))
    i+=1
       for name in names :
            print("班級(jí)%d班學(xué)生姓名:%s"%(i,name))

1.6. 列表案例:

1.6.1. 案例1

編程實(shí)現(xiàn)一個(gè)元素全為數(shù)字的列表啤贩,求最大值、最小值

nums=[10,9,100,80,75,10,3]
1:    
#排序
#nums.sort()#正序
#print("最小值",nums[0],"最大值",nums[len(nums)-1])


2:
#先定義第一個(gè)就是最大值
max=nums[0]
#先定義第一個(gè)就是最小值  
min=nums[0]
for num in nums:
    #認(rèn)為第一個(gè)就是最大值
    #之后的和最大值比較拜秧,如果比這個(gè)最大值大痹屹,最大值等于該值
    if num>max:
        max=num
    if num<min:
        min=num
print("最大值",max,"最小值",min)


3:
#根據(jù)下標(biāo)獲取最大值
maxIndex=0
minIndex = 0
for n in range(0,len(nums)):
    if nums[n] > nums[maxIndex]:
        maxIndex=n
        print("最大值",nums[maxIndex])
    if nums[n] <  nums[minIndex]:
        minIndex=n
        print("最小值",nums[minIndex])

4:
print(max(nums)) 方法  最大值
print(min(nums)) 方法  最小值

1.6.2. 案例

計(jì)算每個(gè)班級(jí)學(xué)生總成績

#計(jì)算每個(gè)班級(jí)的總成績  
score = [[99,89,79,69],[98,88,78,68,58],[97,87,77]]    
#班號(hào)  
i = 1    
for s in score:#s表示每個(gè)班級(jí)的列表      
    #定義sum記錄每個(gè)班級(jí)的總成績      
    sum = 0      
    for a in s:#每個(gè)班級(jí)中學(xué)生的分?jǐn)?shù)          
        sum = sum + a        
         print('%d班的總成績是%d'%(i,sum))      
    #班號(hào)自增      
    i += 1

2. 元組

python中元組和列表類似,
不同之處在于元組的元素不能更改枉氮,元組使用小括號(hào)志衍,list使用中括號(hào)。
但是整個(gè)列表可以被刪除

tuple=("abc","bcd","efg")

2.1. 根據(jù)下標(biāo)和切片獲取元素

print(tuple[0]) #abc
print(tuple[0:1]) #abc bcd efg

2.2. 元組中內(nèi)置函數(shù)count index

tuple=("abc","bcd","efg","bcd")
print(tuple.index("abc")) #0
print(tuple.count("bcd")) #2
  1. 案例:

    1:
    使用tuple嵌套list,錄入個(gè)人信息聊替,(個(gè)人的姓名楼肪,年齡,性別)并將個(gè)人信息遍歷打印惹悄。

     準(zhǔn)備空的tuple
     infos=([],[],[],[],[])
     for i in range(0,3):
         userName=input("請(qǐng)輸入姓名:\n")
         age=int(input("請(qǐng)輸入年齡:\n"))
         sex=input("請(qǐng)輸入性別:\n")
        #獲取列表
         list=infos[i]
         list.append(userName)
         list.append(age)
         list.append(sex)
    
     #整體打印
     print(infos)
    

    2:
    學(xué)員信息查詢春叫,在三個(gè)班級(jí)中,查找張三信息俘侠,判斷張三是否存在象缀,張三屬于第幾個(gè)班級(jí)。

     name=input("請(qǐng)輸入要查找的姓名:\n")    
     classes=[["李斯","趙高","秦二世"],["王五","張三","周⑦"],["哈哈","呵呵","吼吼"]]
     #定義標(biāo)識(shí)符號(hào)
     flag=False #認(rèn)為不存在
     #遍歷
     num=0
     #定義學(xué)生班級(jí)號(hào)
     snum=0
     for cs in classes:
         #進(jìn)行班級(jí)第二層遍歷
           for c in cs:
           #如果名字相等
              if name==c:
                 flag=True
                 #找到了對(duì)應(yīng)的學(xué)生爷速,記錄班級(jí)
                 snum=num+1
            num+=1
    
     if flag:
         print(name+"存在班級(jí)號(hào)是%d"%snum)
     else:
         print(name+"不存在")
    

3.3. 試做題:

將字符串的年月日 時(shí)分秒依次存入列表

4. 自己練習(xí)一下:

作業(yè)1:分別錄入三組數(shù)據(jù):使用循環(huán)控制,每組錄入5個(gè)數(shù)據(jù)霞怀。錄入結(jié)束惫东,能夠打印出所有信息。

作業(yè)2:登陸操作:用戶名和密碼及進(jìn)行錄入判斷 當(dāng)用戶名是Colin 密碼是123456的時(shí)候顯示登錄成功 毙石。如果密碼和用戶名錄入錯(cuò)需要循環(huán)錄入廉沮。并且錄入錯(cuò)誤次數(shù)超過三次提示:賬號(hào)已鎖。并且停掉循環(huán)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末徐矩,一起剝皮案震驚了整個(gè)濱河市滞时,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌滤灯,老刑警劉巖坪稽,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曼玩,死亡現(xiàn)場離奇詭異,居然都是意外死亡窒百,警方通過查閱死者的電腦和手機(jī)黍判,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來篙梢,“玉大人顷帖,你說我怎么就攤上這事〔持停” “怎么了贬墩?”我有些...
    開封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長妄呕。 經(jīng)常有香客問我震糖,道長,這世上最難降的妖魔是什么趴腋? 我笑而不...
    開封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任吊说,我火速辦了婚禮,結(jié)果婚禮上优炬,老公的妹妹穿的比我還像新娘颁井。我一直安慰自己,他們只是感情好蠢护,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開白布雅宾。 她就那樣靜靜地躺著,像睡著了一般葵硕。 火紅的嫁衣襯著肌膚如雪眉抬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天懈凹,我揣著相機(jī)與錄音蜀变,去河邊找鬼。 笑死介评,一個(gè)胖子當(dāng)著我的面吹牛库北,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播们陆,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼寒瓦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坪仇?” 一聲冷哼從身側(cè)響起杂腰,我...
    開封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎椅文,沒想到半個(gè)月后喂很,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惜颇,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年恤筛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了官还。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡毒坛,死狀恐怖望伦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情煎殷,我是刑警寧澤屯伞,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站豪直,受9級(jí)特大地震影響劣摇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弓乙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一末融、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧暇韧,春花似錦勾习、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至涂乌,卻和暖如春艺栈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背湾盒。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來泰國打工湿右, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人历涝。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓诅需,卻偏偏與公主長得像,于是被迫代替她去往敵國和親荧库。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容