python學習筆記(二)列表操作


列表及列表操作:

  列表是最常用的數據類型之一,列表也叫數組,列表定義,使用[]即可;列表里面可以再套列表,一個里面套一個列表,叫二維數組;一個里面套一個列表,里面的列表再套一個列表,這個叫三位數組,套幾層就是幾維,定義格式如下:

1 list1 = [1,2,3,4]#一個普通的數組
2 list2 = ['marry','lily',[50,'money']]#二維數組
3 list3 = ['name','sex',['lily',124,['aaaa','bbb']]]#三維數組
1 all_nums=[123,456,[789,10,11]]
2 three=[123,456,[789,10,11,['hahah','1234']]]
3 print(all_nums[2][1]) #10
4 print(three[2][-1][0]) #hahah

 

  通過下列訪問中的元素,下標從0開始計數,也就是說,比如一個列表,有5個元素,那么它第一個元素下標就是0,第二個就是1,以此類推,字符串也有下標,和列表一樣,對列表的操作,分以下幾種增,刪,改,查

下標,角標,索引:
  

1 stus=['xiaohei','xiaobai','xiaohuang','xiaolan']
2 print(stus[1]) #'xiaobai'
3 print(stus[-1]) #'xiaolan'  最后一個元素下標可以寫-1
4 print(stus[-2]) #'xiaohuang'

增加:

msg='你好'
name=['andashu','cc','niuniu']
name.append(msg)#在list末尾增加一個元素
name.insert(1,msg)#從指定位置插入,這個1代表下標
name.insert(10,msg)#如果指定下標不存在,那么就是在末尾添加
name.insert(-1,msg)#-1可以寫,但是結果添加出來不對,所以一般不寫
print(name)

修改:

1 msg='你好'
2 name=['andashu','cc','niuniu']
3 name[1]='baby'#修改指定位置的值,直接取下標進行修改即可

查詢:

1 msg='你好'
2 name=['andashu','cc','niuniu']
3 print(name[0])#獲取第一個元素
4 print(name[-1])#-1代表最后一個元素
1 stus=['xiaohei','xiaobai','xiaohuang','xiaolan']
2 print(stus.count('xiaohei'))#查看在list中某個元素的個數
3 print(stus.count('hahaha'))#查看在list中某個元素的個數,如果該元素不存在,那么返回0
4 print(stus.index('xiaobai'))#找到這個元素的下標,如果多個,返回第一個
5 print(stus.index('hahaha'))#找到這個元素的下標;如果多個,返回第一個;如果找一個不存在的元素,會報錯

刪除:

1 msg='你好'
2 name=['andashu','cc','niuniu']
3 name.remove('cc')#刪除指定的值
4 name.pop()#默認刪除最后一個元素,如果指定下標,那么刪除指定的元素
5 name.pop(2)
6 name.pop(100)#如果刪除不存在的元素,那么報錯
7 del name[0]#刪除指定位置的值
8 name.clear()#清空列表

列表操作,一些內置的方法:

 

 1 a=[1,2,3,4]
 2 b=[5,6,7,8]
 3 a.extend(b)#合並a,b兩個列表
 4 print(a)#[1,2,3,4,5,6,7,8]
 5 print(b)#[5,6,7,8]只是把b列表里的內容合並到a中,b列表並不受影響
 6 
 7 stus = ['xiaohei','xiaobai','xiaohuang','cxdser','xiaohei']
 8 stus.reverse()#反轉list
 9 print(stus)#['xiaohei', 'cxdser', 'xiaohuang', 'xiaobai', 'xiaohei']
10 
11 
12 nums = [9,31,345,12,457,2352,12143,2321]
13 nums.sort()
14 print(nums)#[9, 12, 31, 345, 457, 2321, 2352, 12143]
15 nums.sort(reverse=True)
16 print(nums)#[12143, 2352, 2321, 457, 345, 31, 12, 9]
17 #sort()排序,默認排序是升序,如果指定了reverse=True就是按照降序排

 list循環:

  如果直接for循環一個list的時候,那么每次循環的值都是這個list里面的元素

1 names=['haha','hehe','heihei']
2 for name in names:
3     print(name)     # haha   hehe  heihei
4 
5 
6 index=0
7 for i in range(3):
8     print(names[index])
9     index+=1         # haha   hehe  heihe

切片:

  切片也就是另一種方式獲取列表的值,它可以獲取多個元素,可以理解為,從第幾個元素開始,到第幾個元素結束,獲取他們之間的值,格式是name:[1:10],比如說要獲取name的第一個元素到第五個元素,就可以用name[0:6],切片是不包含后面那個元素的值,記住顧頭不顧尾;前面的下標如果是0的話,可以省略不寫,這樣寫,name[:6],切片后面還有可以寫一個參數,叫做步長,也就是隔多少個元素,取一次,默認可以不寫,也就是隔一個取一次,切片操作也可以對字符串使用,和列表的用法一樣,實例如下:

 1 nums=[1,2,3,4,5,6,2,3,4,6,4,3,2,1,2,3,4]
 2 print(nums[3:6])#[4,5,6]
 3 print(nums[:6])#[1,2,3,4,5,6] 如果切片的前面一個值不寫的話,從頭開始數
 4 print(nums[3:])#[4,5,6,2,3,4,6,4,3,2,1,2,3,4] 如果切片的后面一個值不寫的話,取到末尾
 5 print(nums[:])#如果切片的兩個值都不寫的話,從頭取到尾
 6 print(nums[::2])#步長為2,這個代表取所有的元素,然后每隔2個元素取一個
 7 print(nums[::-1])#步長是正數的話從左往右取,步長是負數的話從右往左取,相當於倒序排列
 8 print(nums[-1:-9:-1])
 9 print(nums[16:8:-1])
10 #切片同樣適用於字符串,字符串也有下標
11 title='今天發 蘋果' #空格也算一個字符串
12 print(title[0]) #
13 print(title[:4])#今天發
14 for t in title:
15      print(t)#今天發 蘋果
16 for i,t in enumerate(title):#enumerate可以同時循環索引下標和值
17     print('%s:%s'%(i,t)) #0:今 1:天 2:發 3:  4:蘋 5:果
18 #列表也適用enumerate:
names=['haha','hehe','heihei']
for index,name in enumerate(names):
print('%s:%s'%(index,name))
 
        

小練習:

  注冊:輸入用戶名,判斷賬號是否存在,若存在給出提示;若不存在,提示注冊成功;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM