Python之序列類型方法

溫故而知新:前面學習了三種序列,字符串、列表,元組
列表是可變的(內容可改變,但是id不變);
字符串、元組是不可變(里面內容變了,id也發(fā)生了變化;字符串/元組)

技巧:

dir():用來查詢一個類或者對象所有屬性,返回一個列表;
help():用來查詢的說明文檔。
例如: dir(li),help(li.append)

  1. 列表的常用方法
li = [1,2,3,4]
li.append(5)   #在列表末尾添加新的對象
li.clear()   #清空列表
id(li)     #查看id內存
li.count(1)     #統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù)。
iter()    #用來生成迭代器可以一個一個從中取出來,3種序列都是可迭代的對象
li.extend([5,6])   #把可迭代的對象依次擴展原來的列表
li.index(obj)     #從列表中找某個值第一個匹配項的索引位置。
li.pop(index)  #出棧,移除列表中的一個元素(默認最后一個元素即下標-1的元素),并且返回該值
li.insert(index,obj)    #按照指定的位置插入元素。
li.remove(obj)    #移除首次出現(xiàn)指定的值
li.reverse()   #反轉列表中的元素
li.sort()   #排序,對原列表進行排序。列表中的元素要類型相同  (key = len)
image.png
  • python內置函數(shù):
    sorted() 和 reversed()
  1. 元組的方法:
t = (1,2,3,4,1,5,3)
t.count(obj)  #統(tǒng)計某個元素在元組中出現(xiàn)的次數(shù)
t.index(obj)  #從列表中找某個值第一個匹配項的索引位置
#注意:聲明只有一個元素的元組時要加逗號
#特點:不可變
  1. 字符串的常用方法
s = 'python'
s.count('t')    #返回字符串s在t中出現(xiàn)的次數(shù),帶可選參數(shù)
s.startswith('p')    #若字符串s以p開頭,返回True,否則False
s.endswith(‘n’)   #若字符串s以n結尾,返回True,否則False
s.find('a')   #如果找到a首次出現(xiàn)返回對應索引值,沒有找到返回-1(為啥不是0,1,是因為考慮到索引值存在0和1)
s.index(obj)     #從字符串中找某個值第一個匹配項的索引位置,index找不到則會報錯
s.isalpha()     #判斷是否純字母
s.isdigit()      #判斷全是數(shù)字
s.upper()     #轉化成大寫
s.lower()     #轉化成小寫
s.islower ()   #測試是否全是小寫
s.isupper ()   #測試是否全是大寫
s.replace(old,new,[count])   #替換,數(shù)字代表次數(shù)
s.split()  #拆分字符串,通過指定分隔符對字符串進行切片,并返回分割后的字符串列表(list),默認以空格分割,-1表示全切;
s.split(str,num)  #str,num為可選參數(shù),str是分隔符,默認為空格' ',若字符串s中不存在指定的分隔符,則把整個字符串作為列表的元素,但是不能為空'',num是分割次數(shù),如果存在參數(shù)num,則僅分隔成 num+1 個子字符串,并且每一個子字符串可以賦給新的變量,默認是-1
s = 'haha lala'
s.split()  >>>['haha','lala'] #默認為空格' '
s.split(' ')  >>>['haha','lala'] #等同默認
s.split('')  >>> ValueError: empty separator #但是不能為空''
s.split('p')  >>>['haha lala']  #若字符串s中不存在指定的分隔符,則把整個字符串作為列表的元素
s.split('a')   >>>['h', 'h', ' l', 'l', ''] #默認全切
s.split('a',-1)   >>>['h', 'h', ' l', 'l', ''] #等同默認
s.split('a',2)  >>>['h', 'h', ' lala'] #切割2次
------------------------
#注意如果以首尾相切空的問題:
s1 = 'aaabbbccc'
s1.split('b') => ['aaa', '', '', 'ccc']  #相當于每切一次以分隔符為中心將字符串切成兩邊,將左邊的丟到列表作為一個元素,然后按照切割次數(shù)依次往右邊切,第一次切分成'aaa'&'bbccc',第二次切從右邊'bbccc'切,分成''&'bccc',類似第三次則切'bccc',分成''&'ccc',然后將前面切的左邊和最后一個作為列表元素返回。
s1.split('b',2) => ['aaa', '', 'bccc'] #第一切'aaa'&'bbccc',第二次''&'bccc'
s1.split('a') => ['', '', '', 'bbbccc'] #第一切''&'aabbbccc',然后''&'abbbccc',再''&'bbbccc'
s1.split('a',1) => ['', 'aabbbccc']
s1.split('b',3) => ['aaa', '', '', 'ccc']
s1.split('c') => ['aaabbb', '', '', ''] #'aaabbb'&'cc',''&'c',''&''
s1.split('c',2) => ['aaabbb', '', 'c']

s1.join(seq) #將序列seq(列表,字符串,元組都可)中的元素(要全部為字符串對象)以指定的字符s1連接生成一個新的字符串。
#split與join的相愛相殺,相煎何太急
ipStr = '192.168.10.11'
ipList = ipStr.split('.')  >>>  ['192', '168', '10', '11'] #將字符串分割成列表
'.'.join(ipList)  >>> '192.168.10.11'   #將列表拼接成字符串
  • 注意:
  1. new = s.replace('python','ladygaga') #忘記用一個變量接受了,因為replace返回的是str,也對應了字符串是不可變的,需要接受返回值,s='python',s[1]是錯誤的,因為字符串是不可變的,所以用replace;
  2. 列表操作,lis+=[2] 不等同于lis=lis+[2]
    +=賦值運算,相當于將原列表擴展了與extend()方法效果一樣,id沒變;
    +運算,是將原列表與新的相加,組成了新的列表,id變了
image.png

課后實踐

  1. 定義一個列表,li = [1,2]
    ①用至少三種方法往列表里面插值。
li.append(3)  #列表后面追加對象
li.extend([4]) #往列表后面擴展可迭代的元素;
li +=[5]   #賦值運算
li.insert(5,6)  #將指定對象插入列表的指定位置。

②用至少三種方法替換列表中的某個元素。

li[5] = 0
li.remove(0) #移除指定元素
li.append(6) #追加值

li.pop(5) # 刪除指定索引的值
li.insert(5,6) #指定位置插入指定值
  1. s = 'hello python !' 如何把s 中的'python' 替換成'world'
newstr = s.replace('python','world') #用一個新的變量接受,因為replace返回的是新的列表對象

①將 s ='hello python !',轉換成列表 li=['hello','python','!']

li = s.split()   >>>  ['hello', 'python', '!']

②如何取出li列表里的‘hello’的最后一個字母'o'?

li[0][4]、li[0][-1]、li[-3][4]、li[-3][-1]
  1. 現(xiàn)有一個列表,請完成下列要求:
list_1 = ['1', ['2', 'hacker', 'dugujiujian'],
          ['2', 'Java', 'Python', 'Ruby', 'PHP', ['3', 'binghe', 'muma', 'Hi python']],
          ['2', 'Adam', 'Bart', 'Lisa', ['3', 'luhan', 'zhangxueyou', 'guofucheng', 'wangbaoqiang']]
          ]

①打印出Python:

  list_1[2][2]

②打印出muma,luhan,并將他們添加到list_2:

list_2= list() 或 list_2=[]
list_2.extend([list_1[2][5][2],list_1[3][4][1]])
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 兩本不錯的書: 《Python參考手冊》:對Python各個標準模塊,特性介紹的比較詳細。 《Python核心編程...
    靜熙老師哈哈哈閱讀 3,441評論 0 80
  • 內置函數(shù)Python解釋器內置了許多功能和類型,總是可用的。他們是按字母順序列在這里。 abs(x)返回一個數(shù)的絕...
    uangianlap閱讀 1,357評論 0 0
  • 《裕語言》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 28,704評論 5 20
  • 你說得對,做出這樣的成績我有什么資格去狡辯,我應該去總結,去思考; 你說得對,我不會聊天,以至于得罪太多的人; 你...
    好啊好啊好閱讀 324評論 0 1

友情鏈接更多精彩內容