1. 程式人生 > >Python中字串,列表,元組,字典,個人總結!!!

Python中字串,列表,元組,字典,個人總結!!!

目錄

 

一.字串

  1. 字串的定義及格式
  2. 字串的索引和切片
  3. 字串的查詢
  4. 字串的拆分
  5. 字串的替換
  6. 字串的修飾
  7. 字串的格式化
  8. 字串的變形
  9. 字串的判斷

二.列表

  1. 列表的定義及格式
  2. 列表的索引和for迴圈遍歷列表
  3.  列表的新增
  4. 列表的刪除
  5. 列表的查詢
  6. 列表的修改
  7. 列表的切片
  8. 列表的排序和翻轉
  9. 列表的拷貝

三.元組

  1. 元組的定義及建立
  2. 元組的訪問
  3. 使用多個變數來接受元組的值
  4. 元組中的方法

四.字典

  1. 字典的定義及格式
  2. 字典的增刪查改
  3. 字典的增加
  4. 字典的刪除
  5. 字典的修改
  6. 字典的查詢
  7. for迴圈及字典的遍歷

 

 

 

 

 


 

一.字串

1.字串的定義及建立:

字串是有序的,不可更改的,元素用引號包圍的序列。

三引號,雙引號或單引號中的資料就是字串。例如:"hello"      'world'

2.字串的索引和切片:

索引:

注意:索引都是從0開始索引,如果是負數,則是從右向左開始索引。

s = [1, 2, 3, [5, 6, 7], 8, 9]
print(s[0])        # 輸出列表中的第一個數            
print(s[-1])       # 輸出列表中的最後一個數組         
print(s[3][-1])     # 輸出列表中子列表的最後一個數    

輸出結果:1     

                    9

                    7

切片:

s = [1, 2, 3, 4, 5, 6, 7, 8]
print(s[0:3])
print(s[1:5])           # s[start:end:step],從start開始,到end-1結束,步長為step
                        # step==2,就間隔一個字元;==3就間隔2個字元,依次遞進
print(s[1:5:1])         # 從第二個數開始到第四個數結束 
print(s[:])             # 輸出 所有字元
print(s[:4])            # 輸出前4個字元  相當於[0:4]
print(s[::-1])          # 將字元倒敘輸出
print(s[2:])            # 除了前兩個字元,其餘全部輸出
print(s[-1:-4:-1])
print(s[-3::]) 
print(s[::-2])

輸出結果:[ 1,2,3 ]

                     [ 2,3,4,5 ] 

                     [ 2,3,4,5 ]

                    [ 1,2,3,4,5,6,7,8 ]

                   [ 1,2,3,4]     

                   [ 8,7,6,5,4,3,2,1 ]

                  [ 3,4,5,6,7,8 ]

                   [ 8,7,6 ]

                  [ 6,7,8 ]          

                 [ 8,6,4,2 ]

3.字串的查詢:

s = 'Hello world Python'    注意:字串中的空格也算在索引內

print(s.count('o'))        # 計算'o'在是中的個數。

print(s.find('l'))         # 查詢,返回從左第一個指定字元的索引,找不到返回-1

print(s.find('c'))         # 字串中沒有發現就返回-1

print(s.rfind('o'))        # 字串從右至左找第一個字元,但是索引是從左往右索引。

print(s.index('c'))        # 字串中沒有發現該字元,就會報錯。
      
print(s.rindex('h'))       # 和rfind類似,但是找不到會報錯



輸出結果: 3
          2
          -1
          16
          ValueError: substring not found    #報錯了
          15


               

4.字串的拆分:

s = 'Hello world Python'

print(s.split('w'))    # 按照指定內容進行拆分,分為指定部分前 和指定部分後兩部分。返回列表形式。

print(s.partition('orl'))   # 按照指定內容進行拆分,分為指定部分前 ,指定部分和 指定部分後三部
                              分,返回元組形式。
                              
s = 'Hello\n world\n Python'

print(s.splitlines())               # 按照換行符分割,返回列表的形式

print(s.splitlines(keepends=False))  # keepends=False   預設不顯示換行符

print(s.splitlines(keepends=True))  # keppends=True       預設顯示換行符


輸出結果: ['Hello ', 'orld Python']
          ('Hello w', 'orl', 'd Python')
           ['Hello', ' world', ' Python']
            ['Hello', ' world', ' Python']
            ['Hello\n', ' world\n', ' Python']

5.字串的替換:

s = 'Hello world Python'

print(s.replace('o', '0'))  # 將字串中所有的o 替換成0 預設全部替換

print(s.replace('o', '0', 2))  # 第三個引數,是指定替換的個數


輸出結果:    Hell0 w0rld Pyth0n
             Hell0 w0rld Python

----------------------------------------------------------------------------------
	translate	按照對應關係來替換內容 from string import maketrans

s = 'Hello world,'
a = 'world,'
b = 'python'
ret = str.maketrans(a,b)   
s1 = s.translate(ret)      # 必須一一對應
print(s1)


輸出結果:   Hehhy python

6.字串的修飾:

center:將字串按指定長度居中,若果不能左短右長,可以指定填充內容,預設以空格填充。

s = 'hello'

print(s.center(10,'*'))   # 填充長度是10 ,用 * 填充

輸出結果:**hello***
-------------------------------------------------------------------------------------
ljust:讓字串在指定的長度左齊,可以指定填充內容,預設以空格填充
	  
rjust:讓字串在指定的長度右齊,可以指定填充內容,預設以空格填充。

# ljust 和 rjust
s = 'hello'
print(s.ljust(15, '~'))
print(s.rjust(15, '*'))

輸出結果:hello~~~~~~~~~~
         **********hello
-----------------------------------------------------------------------------------------
zfill:  將字串填充到指定長度,不足的地方從左開始填充0

s = 'hello'

print(s.zfill(10))

輸出結果:00000hello

7.字串的格式化:

for.mat()用法:
   
    相對基本格式化輸出採用'%'的方法,for.mat()功能更強大,通過傳入引數進行格式化,並使用大括號{}代替%

1.使用位置引數:位置必須一一對應:

name = 'zs'

age = 19

print('大家好,我叫{},今年{}歲'.format('zs',age)     # 位置必須一一對應

print('大家好,我叫{0},我叫{0},我叫{0},今年{1}歲'.format('zs',age) 

輸出結果:大家好,我叫zs,今年19歲
         大家好,我叫zs,我叫zs,我叫zs,今年19歲

2.使用關鍵字引數:

print('我叫{name},今年{age}歲了'.format(name = 'zs',age = 19))

輸出結果:我叫zs,今年19歲了

8.字串的變形:

# upper   將字串中所有字母轉換為大寫  

# lower   將字串中所有字母轉化為小寫

# swapcase 將字串中字母大小寫互換

# title    將字串中單詞首字母轉化為大寫 

# capitalize 只有字串首字母大寫

# expandtabs 將字串中tab('\t')符號轉化為空格
-------------------------------------------------------------------------------------
s = 'Hello python'

print(s.upper())

print(s.lower())

pow(s.swapcase())

print(s.title())

print(s.capitalize())

s1 = 'hello\tpython'

print(s.expandtabs())

輸出結果:HELLO PYTHON
                  hello python

                  hELLO PYTHON
                  Hello Python
                  Hello python
                  hello   python    

     9.字串的判斷:

大部分判斷都是返回bool型

s = 'Hello123'
print(s.isalnum())              #  True       判斷字串是否完全由數字和字母組成

s1 = 'abcde'
print(s1.isalpha())              # True        判斷字串是否完全由字母組成

s2 = 'abc123'
print(s2.isdigit())            # False          判斷zfc是否完全由數字組成

s3 = '  abcDE'
print(s3.isupper())             # False        判斷字串內字元是否全是大寫

s4 = 'abcd'
print(s4.islower())              # True        判斷字串內字元是否全是小寫

s5 = 'Hello Python'
print(s5.istitle())              # True       判斷字串中的單詞首字母是否大寫

s6 = '     '
print(s6.isspace())             # True        判斷字串是否完全由空格組成

s7 = 'hello python'
print(s7.startswith('h',2,4))    # False      判斷字串在指定範圍內是否已指定字元開頭
print(s7.endswith('lo',0,5))     #  True       判斷字串在指定範圍內是否已指定字元結尾


s8 = 'hello python'
print(s8.split('o'))       #  ['hell', ' pyth', 'n'] 將字串以指定內容分割,返回列表形式。

二.列表

1.列表的定義及格式:

列表是個有序的,可修改的,元素用逗號隔開,用中括號包圍的序列。

格式:變數名 = [ 元素1,元素2,元素3...]

作用:儲存多個數據

2.列表的索引:

通過索引獲取表中的書記,索引從0開始

注意:不要索引越界

s = [ 'hello',a,b,c ]

print(s[1]) 

輸出結果:a   

用for雲鬟遍歷列表:

name = [ 'zs','ls','ww' ]

for i in name:

      print( i )

輸出結果:zs

                  ls

                  ww

3.列表的新增:append(),  insert(),  extend(), 還有兩個列表直接相加

 # append 
lst = ['悟空','八戒','唐僧']       

lst.append('白骨精')      # append   向列表末尾增加指定元素

print(lst)

# 輸出結果:   ['悟空', '八戒', '唐僧', '白骨精']

-------------------------------------------------------------------------------------------
 # insert 
lst = ['悟空','八戒','唐僧']

lst.insert(1,'白骨精')     # insert  往列表制定位置新增制定元素,負索引倒敘插入。超過索引插入末尾

print(lst)

# 輸出結果: ['悟空', '白骨精', '八戒', '唐僧']
------------------------------------------------------------------------------------------
#extend

lst = ['悟空','八戒','唐僧']

lst1 = ['悟空','八戒','唐僧','悟空']

lst.extend(lst1)                # 將一個列表中的元素新增到另一個列表的尾部合併,不會去重。

print(lst)

# 輸出結果: ['悟空', '八戒', '唐僧', '悟空', '八戒', '唐僧', '悟空']

4.列表的刪除:

# pop  刪除指定索引位上的元素,預設刪除-1的資料

lst = ['悟空','八戒','唐僧']

lst.pop(1)

print(lst)

輸出結果:['悟空', '唐僧']

lst = ['悟空','八戒','唐僧']

lst.pop()

print(lst)

輸出結果:['悟空', '八戒']
-----------------------------------------------------------------------------------------
# remove 從左往右刪除指定的元素,

lst = ['悟空','八戒','唐僧']

lst.remove('八戒')

print(lst)

# 輸出結果:['悟空', '唐僧']
-----------------------------------------------------------------------------------------
# clear   清空列表中所有的元素,返回一個空列表

lst = ['悟空', '八戒', '唐僧']

 

lst.clear()

 

print(lst)

輸出結果:[ ]
-----------------------------------------------------------------------------------------
del	刪除整個列表或列表的資料,del是python內建功能,不是列表獨有的


​lst = ['悟空', '八戒', '唐僧']

del lst           

print(lst)

輸出結果:​​​​NameError: name 'lst' is not defined   (報錯)
​






5.列表的查詢:

# count 返回指定元素在列表的個數

lst  = ['hello','world','hello','python']

print(lst.count('hello'))

輸出結果: 2

--------------------------------------------------------------------------------------------------------------------------------------------------------


lst = ['悟空', '八戒', '唐僧', '悟空']

num1 = lst.index('悟空')

print(num1)

輸出結果:0

6.列表的修改:

lst = ['悟空', '八戒', '唐僧']  

lst[0] = '白龍馬'   # 將列表第一位數值為替換為‘白龍馬’

print(lst)

輸出結果:['白龍馬', '八戒', '唐僧']

7.列表的切片:

lst = ['a', 'b', 'c', 'd', 'e']

print(lst[0:4:2])

# 輸出結果為:['a', 'c']

8.列表的排序和翻轉:

sort() 按照ascii碼錶順序進行排序

lst = ['tom', 'james', 'jerry', 'zs', 'ls']

lst.sort()

print(lst)  # 從小到大排序

輸出結果:['james', 'jerry', 'ls', 'tom', 'zs']


lst.sort(reverse=True)  # 有大到小排序


print(lst)

輸出結果:['zs', 'tom', 'ls', 'jerry', 'james']
------------------------------------------------------------------------------------
reverse()  將列表翻轉

lst = ['tom', 'james', 'jerry', 'zs', 'ls']

lst.reverse()

print(lst)

輸出結果:['ls', 'zs', 'jerry', 'james', 'tom']

9.列表的拷貝:

淺拷貝:

lst1 = ['西施','貂蟬',['悟空','八戒']

lst2 = lst1.copy()   #將lst1 的內容拷貝一份給lst2,  兩者的id 不一樣

print(lst2)

lst2[0] = '楊貴妃'   #lst2 中的西施改成楊貴妃

print(lst2)

輸出結果:['西施', '貂蟬', ['悟空', '八戒']
         ['楊貴妃', '貂蟬', ['悟空', '八戒']

------------------------------------------------------------------------------------

深拷貝:

import copy

lst1 = ['西施','貂蟬',['悟空','八戒']

lst2 = copy.deepcopy(lst1)

print(lst2)

lst2[0] = '楊貴妃'

print(lst2)

輸出結果:['西施', '貂蟬', ['悟空', '八戒']
         ['楊貴妃', '貂蟬', ['悟空', '八戒']

三.元組

1.元組的定義及特點:

定義:

           通過()來定義:變數名=(1,2,3,4,) 。以逗號分割的,以小括號包圍的序列。

           通過tuple函式定義: lst=[1,2,3,4] 變數名=tuple(lst)

特點:

            元組是有序的,不能更改的,由於元組不可變 ,所以遍歷元組要比列表快。

2.元組的訪問

通過索引,預設從0開始

通過索引,預設從0開始

tup = (1,2.2,True,'hello')  #  獲得2.2的值,一定要注意索引越界的問題


print(tup[1])

輸出結果:2.2
-------------------------------------------------------------------------------------------
通過切片:

tup = (1,2.2,True,'hello')

print(tup[0:4:2])

輸出結果:(1,True)
-----------------------------------------------------------------------------------------
訪問多維元組:

tup = (('zs',10),('ls',11),('ww',12))

print(tup[1][0])

輸出結果:ls

 

3.使用多個變數來接受元組的值:


tup = (('zs',10),('ls',11),('ww',12))

name,age,height,weight = ('zs',18,1.64,150)

print(name)

print(age)

print(height)

print(weight)

for name, age in tup:     #for 迴圈遍歷多重元組

    print(name,age)



輸出結果:          zs
                   18
                   1.64
                   150
                   zs 10
                   ls 11
                   ww 12

 4.元組的方法:

 


tup = ('a','b','c','c','b','a','x')

 

print(tup.index('b'))

 

print(tup.index('a',2,len(tup)))   

 

print(tup.count('a'))




輸出結果: 1
          
          5
             
          2

5.一個逗號的魅力:

tup = (1,)

print(tup)

tup1 = (1)

print(tup1)

輸出結果:(1,)

                      1

 

四.字典

1.字典的定義及格式:

定義:字典是一個無序的,可以修改的,元素呈鍵對值的形式,以逗號分隔,大括號包圍的序列。

格式:變數名={key:value,key:value}

注意:字典中的key是不可變的型別,value是可變型別的

2. 字典的增加:

setdefault()

dic = {'name': 'zs', 'age': 10, 'height': 1.75}

dic.setdefault('weight',170)   # 鍵存在就不新增,不存在就新增預設的值。

print(dic)

dic.setdefault('weight',180)

print(dic)

輸出結果:{'name': 'zs', 'age': 10, 'height': 1.75, 'weight': 170}
         
         {'name': 'zs', 'age': 10, 'height': 1.75, 'weight': 170}


---------------------------------------------------------------------------------------
dic = {'name': 'zs', 'age': 10, 'height': 1.75}

dic['name'] = 'ww'       # 根據key鍵來設定值,如果key存在就直接覆蓋原有的值

print(dic)


輸出結果: {'name': 'ww', 'age': 10, 'height': 1.75}

3.字典的刪除:

pop()

dic = {'name': 'zs', 'age': 10, 'height': 1.75}

dic.pop('name')   # 根據鍵刪除值

print(dic)

輸出結果: {'age': 10, 'height': 1.75}
------------------------------------------------------------------------------------------
popitem()

dic = {'name': 'zs', 'age': 10, 'height': 1.75}

dic.popitem()   # 隨機刪除一個鍵值對

print(dic)


輸出結果:{'name': 'zs', 'age': 10}

-----------------------------------------------------------------------------------------
cleal()

dic = {'name': 'zs', 'age': 10, 'height': 1.75}

dic.clear()   #  清空字典裡所有的鍵值對

print(dic)


輸出內容:{}

del dic 

pprint(dic)

輸出結果:NameError: name 'dic' is not defined  (報錯)









4.字典的修改:

 

使用key修改:
    
 dic = {'name':'zs','age':10,'height':1.78}

 dic['name'] = '張三'

 print(dic)


輸出結果: {'name':'張三','age':10,'height':1.78}

---------------------------------------------------------------------------------------

update()    按照字典的格式更新鍵的內容,若果字典不存在這個鍵,就建立這個鍵和值

dic = {'name': 'zs', 'age': 10, 'height': 1.78}

dic1 = {'name':'張三','weight':152}

dic.update(dic1)

print(dic)


輸出結果:{'name': '張三', 'age': 10, 'height': 1.78, 'weight': 152}

5.字典的查詢:

c = {'name': 'zs', 'age': 10, 'height': 1.78}

print(dic.get('name'))     # get()根據鍵來獲取相應的值,如果鍵不存在,預設返回None

print(dic.keys())          # 返回一個包含字典所有key的列表

print(dic.values())        # 返回一個包含字典所有value的列表

print(dic.items())         # 返回字典鍵值,返回呈元組的形式

print(len(dic))            # 測量字典鍵值對的個數,注意是鍵值對。




輸出結果:
          zs

          dict_keys(['name', 'age', 'height'])

          dict_values(['zs', 10, 1.78])

          dict_items([('name', 'zs'), ('age', 10), ('height', 1.78)])

          3

6.for 迴圈及字典的遍歷:

dic = {'name': 'zs', 'age': 10, 'height': 1.75}

# 獲取所有的key

for key in dic:

    print(key)           

for key in dic.keys():
    
    print(key)

輸出結果:
         name

         age

         height
-------------------------------------------------------------------------------------
# 獲取所有的value

for value in dic.values:

    print(value)

輸出結果:zs

         10

         1.75
-------------------------------------------------------------------------------------
# 獲取所有的鍵值對,並以元組的形式返回:

for item in dic.items():
    
    print(item)


輸出結果:
         ('name', 'zs')

         ('age', 10)

         ('height', 1.75)


# 字典的遍歷:

for key,value in dic.items:

    print(key,value)


輸出結果:

          name zs

          age 10

          height 1.75