1. 程式人生 > >字串、列表、元組、字典

字串、列表、元組、字典

                                        <div class="markdown_views prism-atom-one-dark">
                        <!-- flowchart 箭頭圖示 勿刪 -->
                        <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg>
                        <p><strong>字串介紹</strong> <br>

<1>python中字串的格式

雙引號或者單引號中的資料,就是字串
  • 1

<2>字串中”下標”的使用 列表與元組支援下標索引好理解,字串實際上就是字元的陣列,所以也支援下標索引。 如果想取出部分字元,那麼可以通過下標的方法,(注意python中下標從 0 開始)

 name = 'abcdef'
 print(name[0])
 print(name[1])
 print(name[2])
  • 1
  • 2
  • 3
  • 4

<3>切片 切片是指對操作的物件擷取其中一部分的操作。字串、列表、元組都支援切片操作。 切片的語法:[起始:結束:步長] 注意:選取的區間屬於左閉右開型,即從”起始”位開始,到”結束”位的前一位結束(不包含結束位本身)。

我們以字串為例講解。如果取出一部分,則可以在中括號[]中,使用:

 name = 'abcdef' #定義一個字串
 name[0:3]<=>name[:3] #取下標0~2的字元;0可以省略 
 name[2:] #取下標為2開始到最後的字元
 name[1:-1] #取下標為1開始到最後第2個之間的字元
 name[::2] #ace 步長2
 name[::-2] #fdb -2表示逆序並且步長為2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

反轉字串

 name = 'abcdef' #定義一個字串
 name[::-1] #fedcba
  • 1
  • 2

字串常見操作 其餘不常用字串操作這裡不再介紹 如有字串mystr = ‘hello world itcast and itcastcpp’,以下是常見的操作 <1>find

檢測 str 是否包含在 mystr中,如果是返回開始的索引值,否則返回-1

mystr.find(str, start=0, end=len(mystr)) 
  • 1

<2>index 跟find()方法一樣,只不過如果str不在 mystr中會報一個異常.

mystr.index(str, start=0, end=len(mystr))   
  • 1

<3>count 返回 str在start和end之間 在 mystr裡面出現的次數

mystr.count(str, start=0, end=len(mystr))
  • 1

<4>replace 把 mystr 中的 str1 替換成 str2,如果 count 指定,則替換不超過 count 次.

mystr.replace(str1, str2,  mystr.count(str1)) 
  • 1

<5>split 以 str 為分隔符切片 mystr,如果 maxsplit有指定值,則僅分隔 maxsplit 個子字串

mystr.split(str=" ", 2)    
  • 1

<6>capitalize 把字串的第一個字元大寫

mystr.capitalize() 
  • 1

<7>title 把字串的每個單詞首字母大寫

>>> a = "hello itcast"
>>> a.title()
   'Hello Itcast'
  • 1
  • 2
  • 3

<8>startswith 檢查字串是否是以 obj 開頭, 是則返回 True,否則返回 False

mystr.startswith(obj)   
  • 1

<9>endswith 檢查字串是否以obj結束,如果是返回True,否則返回 False.

mystr.endswith(obj)    
  • 1

<10>lower 轉換 mystr 中所有大寫字元為小寫

mystr.lower()  
  • 1

<11>upper 轉換 mystr 中的小寫字母為大寫

mystr.upper()       
  • 1

列表介紹 <1>列表的格式 變數namesList的型別為列表,比C語言的陣列強大的地方在於列表中的元素可以是不同型別的

namesList = ['xiaoWang','xiaoZhang','xiaoHua'123]
  • 1

<2>列印列表

namesList = ['xiaoWang','xiaoZhang','xiaoHua']
print(namesList[0])
print(namesList[1])
  • 1
  • 2
  • 3

<3>列表的迴圈遍歷 1. 使用for迴圈(首選)

namesList = ['xiaoWang','xiaoZhang','xiaoHua']
for name in namesList:
    print(name)
  • 1
  • 2
  • 3

2. 使用while迴圈

namesList = ['xiaoWang','xiaoZhang','xiaoHua']
length = len(namesList)
i = 0
while i<length:
    print(namesList[i])
    i+=1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

實現帶下標索引的遍歷

   >>> chars = ['a', 'b', 'c', 'd']
   >>> i = 0
   >>> for chr in chars:
           print("%d %s"%(i, chr))
           i += 1
  • 1
  • 2
  • 3
  • 4
  • 5

enumerate()

>>> chars = ['a', 'b', 'c', 'd']
>>> for i, chr in enumerate(chars):
    print i, chr
  • 1
  • 2
  • 3

<4>列表的相關操作 列表中存放的資料是可以進行修改的,比如”增”、”刪”、”改”、”查” <1>新增元素(“增”append, extend, insert) 通過append可以向列表新增元素

#定義列表A,有3個元素
A = ['xiaoWang','xiaoZhang','xiaoHua']
for tempName in A:
    print(tempName)
temp = input('請輸入要新增的學生姓名:')
A.append(temp)
for tempName in A:
    print(tempName)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

通過extend可以將另一個集合中的元素逐一新增到列表中

>>> a = [1, 2]
>>> b = [3, 4]
>>> a.append(b)
>>> a
    [1, 2, [3, 4]]
>>> a.extend(b)
>>> a
    [1, 2, [3, 4], 3, 4]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

>>> a = [0, 1, 2]
>>> a.insert(1, 3)
>>> a
    [0, 3, 1, 2]
  • 1
  • 2
  • 3
  • 4

<2>修改元素(“改”) 修改元素的時候,要通過下標來確定要修改的是哪個元素,然後才能進行修改

#定義列表A,有3個元素
A = ['xiaoWang','xiaoZhang','xiaoHua']
for tempName in A:
    print(tempName)




#修改元素 A[1] = 'xiaoLu' for tempName in A: print(tempName)