python 技巧筆記 字串處理

把字串轉換成list:
a = 'abcd'
b = list(a)
b的內容為 ['a','b','c','d']
=============================================


字串反轉:
a='abcde'
b=a[::-1]
b的內容為'edcba'

=============================================



字串的 join method的用法:
c = 'XX'.join(b)
c 的內容為 'aXXbXXcXXd'
=============================================

有時候字串的左邊或右邊會有多餘的空白字元或是其他字元:
a = 'abcde  '
這個時候可以用rstrip()來將其消除掉
b = a.rstrip()
此時b的內容為'abcde'

如果是其他的字元的話,可以指定要去除的字元:
a = 'abcde\n\n'
b = a.rstrip('\n')

此時b的內容為'abcde'


如果多餘字元在左邊的話就用lstrip()
左右兩邊都有的話就用strip()

=============================================




對list裡面的每一個變數做處理的簡捷寫法:
先宣告一個function來處理要代入的字元:
def UPP(i):
    return i.upper(i)
然後對a 字串裡面的每一個字做處理(變成大寫):
d = [UPP(i) for i in a]
d的內容為['A','B','C','D']
=============================================


字串的對齊:
a = 'test'
b = a.ljust(10)
c = a.rjust(10)
b的內容為: 'test      '
c的內容為: '      test'

=============================================


得到字元在ASCII表中對應的值:
e = ord('Z')
e的內容為整數型態的97

=============================================



把數值根據ASCII表中得到對應的字元:
f = chr(97)
f 的內容為'Z'

=============================================



中文字串by utf-8:
a = '中文'
此時a的內容為'\xe4\xb8\xad\xe6\x96\x87'
print a 的話會顯示
中文

=============================================



中文字串by unicode:
a = u'中文'

此時a的內容為一個unicode物件u'\4e2d\u6587'
print a 的話會顯示
中文

unicode物件有很多好用的方法,像是轉換編碼:
b = a.encode('utf-8')
此時b的內容為'\xe4\xb8\xad\xe6\x96\x87'
c = a.encode('utf-16')
此時c的內容為'\xff\xfe-N\x87e'
print c 會顯示亂碼

所以在處理字串的時候可以考慮以unicode為中心。
a_u8 = '中文'             在utf-8 coding環境底下這個字串會是utf8的編碼
a_u = a_u8.decode('utf-8')           這樣會把utf8的編碼內容解碼成unicode編碼的內容
a_u16 = a_u.encode('utf-16')       然後把unicode編碼的內容轉換成utf16編碼的內容

留言

熱門文章