1. 程式人生 > >Python字串和字典相關操作

Python字串和字典相關操作

字串操作:

  • 字串的 % 格式化操作:

    str = "Hello,%s.%s enough for ya ?"
    values = ('world','hot')
    print str % values
    輸出結果:
        Hello,world.hot enough for ya ?
    
  • 模板字串:

    #coding=utf-8
    from string import Template
    ## 單個變數替換
    s1 = Template('$x, glorious $x!')
    print s1.substitute(x = 'slurm')
    
    ## 美元符號表示以及單個變數的替換
    s2 = Template("Make $$ selling $x!")
    print s2.substitute(x = 'slurm')
    
    ## 欄位變數的替換
    s3 = Template('A $thing must never $action .')
    d = {}
    d['thing'] = 'gentleman'
    d['action'] = 'show his socks'
    print s3.substitute(d)
    
    ps:safe_substitute 不會因缺少值或者不正確使用$字元而出錯。
    
  • 字串格式化型別:

    (1) %字元:標記轉換說明符的開始,就是開始替換。
    (2) -表示左對齊,+表示在轉換值之前加上正負號。0表示轉換值位數不夠則用0填充。
    (3) * 可以指定最小欄位寬度。
    (4) 點(.)後面跟上精度值。
    
  • 字串方法:

    (1)find:可以在一個較長的字串中查詢子字串,返回子串所在位置的最左端索引。如果沒有找到則返回-1.

    print 'With a moo-moo here, and a moo-moo there'.find('moo')
    返回:7
    

    (2)join方法:將字串拼接起來。

    print '/'.join((' ','usr','bin','env'))
    輸出: /usr/bin/env
    ps:和谷歌的guava有點像。
    

    (3)lower方法: 返回字串的小寫字母版。

    print 'AK47'.lower()
    輸出:ak47
    

    (4)replace方法:返回某字串的所有匹配項均被替換之後的得到的字串。

    'This is a test'.replace('is','ezz')
    輸出:Thezz ezz a test
    

    (5)split方法:join的逆方法,將字串分隔成序列。

    print '1+2+3+4+5'.split('+')
    輸出:['1', '2', '3', '4', '5']
    

    (6)strip方法:去除兩側的字串,預設是空格字串,也可以指定相應的字串。

    ps:另外可以參加lstrip和rstrip方法。
    

    (7)translate方法:和 replace 方法一樣,可以替換字串中某些部分,但是和前者不同的是,translate方法只處理單個字元。它的優勢在於可以同時進行多個替換,有些時候比replace效率高的多。

    ps:maketrans方法和translate方法類似。
    

字典的基本操作:

(1) dict方法:用來構造字典資料。

dict(name='Gumby',age=42)
dict([('name','Gumby'),('age',42)])
ps:都是構造欄位的方法。

(2) 字典基本操作:

1. len(d) 返回d中項(鍵值)的數量。
2. d[k]返回關聯到鍵k上的值。
3. d[k]=v 將值v關聯到鍵k上。
4. del d[k] 刪除鍵為k的項。
5. k in d 檢查d中是否含有鍵為k的項。

(3) copy 方法返回一個具有相同鍵值對的新字典。

(4) fromkeys:方法使用給定的鍵建立新的字典,每個鍵對應的值為None。

print {}.fromkeys(['name','age'])
輸出:{'age': None, 'name': None}

(5) get方法:get方法是個更寬鬆的字典項方法。

d = {}
d['name'] 如此訪問時會報錯。
d.get('name')訪問時,如果不存在會返回None。

(6) haskey: haskey方法可以檢查字典中是否含有給出的鍵。d.has_key(k) 相當於 k in d。

(7) items和iteritems方法:

items方法會將字典按照鍵值元組列表的形式返回,但沒有順序。
iteritems和items類似,但是返回的是迭代器。

(8) keys和iterkeys和item類似,這個是返回key的列表或者迭代器。

(9) values方法以列表形式返回字典中的值,和keys或iterkeys不同的是,返回的值可以包含重複值。

(10) update方法可以用一個字典來更新另外一個字典。