1. 程式人生 > 實用技巧 >Python第二篇詳細瞭解列表,字串,檔案操作

Python第二篇詳細瞭解列表,字串,檔案操作

1.列表操作升級

  a.列表合併 

names1=["a","b","c"]
names2=["1","2","3"]
names1.extend(names2)
print(names1)   #['a', 'b', 'c', '1', '2', '3']

  b.列表巢狀

  這其實就是java中的二維陣列了

names1=["a","b","c"]
names2=["1","2","3"]
names2.append(["A","B"])
names1.extend(names2)
print(names1)  #['a', 'b', 'c', '1', '2', '3', ['A', 'B']]

  如果想取到A可以names2[3][0]這都和java一樣的

  c.清空clear()

  names1.clear() #結果就是[]

  d.刪除pop()並返回刪除的元素

names1=["a","b","c"]
names2=["1","2","3"]
names2.append(["A","B"])
names1.extend(names2)
print(names1.pop())    #['A', 'B']

  pop()預設刪除最後一個元素,當然用names1.pop(index)可以刪除指定位置元素,這裡與del names1[index]有區別在於del不會返回任何內容

  e.刪除remove(value)刪除

  刪除列表中的第一個value,如果不存在會報錯

  f.查index和count

  names1.index("A")返回A出現的第一個索引位置,不存在會報錯,一般先if "A" in names1 :names1.index("A")

names1=["a","b","c"]
if "a" in names1 : print(names1.index("a"))     #結果0

    names1.count("A")返回A在列表中出現的次數

  g.切片[start:end]前包後不包

names1=["a","b","c","d","e","f"]
print(names1[2:5])    #['c', 'd', 'e'],從index2取到index4

  這個切片有很多注意事項,因為不包含最後一個index所以想取出最後一個值用names1[1:]end不寫表示從start取到最後,同理,左邊的start也是可以不寫的,如果是names[:]表示取所有

  start和end都可以用負數,表示倒數第一個到倒數第幾個,但是end仍然是不包括在內的

  h.步長[start:end:step]

names1=["a","b","c","d","e","f","g"]
print(names1[-1::-1])  #['g', 'f', 'e', 'd', 'c', 'b', 'a'](負一可以省略)

  步長控制start到end之間每次跳幾個元素切片,如果start和end是反著取的並且讓step為-1可以實現切片+倒敘,上例子中如果是names1[-2:-5:-1]取出來的就是f,e,d部分倒敘切片

  步長的正負表示從start到end是從左往右還是從右往左,如果start到end的方向和正負是相反的,則取出值為空,比如[-1::1]是想從最後一個取到第一個,方向是從左往右,但是step卻是正,則取值為空

  說到這裡不得不說python真的很人性化,不僅列表可以用步長實現翻轉,就連字串也可以

names="迪麗熱巴"
print(names[::-1])     #巴熱麗迪

  值得注意的是切片指的是切出來的新列表是怎樣的,對原列表是沒有影響的

  i.列表的翻轉reverse()和排序sort()

  這其實沒什麼好說的。。。直接用就完了,sort的時候要求列表中元素都是str型別或者都是數字型別,否則會報錯

  j.列表迴圈

  for name in names:

    print(name)

  k.列表長度len(names)

  l.元組names=("A","B")

  元組和列表用法一樣,不過元組只讀,不可修改,沒有刪除,增加,修改操作的方法。常用在你自己的介面中某些不想讓別人修改的內容,或者說只讀保護的內容,比如word中的只讀模式等