有這樣的字符串:"123#%4hello*world000",要求:
-
將字符串中的所有字母取出來
-
分析:對於提取字符的要求,首先遍歷所有的字符串,如果字符串是字母就把它保存到列表中,如果要求結果仍然是字符串,再把它們拼接即可:
>>> s1 = '123#%4hello*world000' >>> slist = [] >>> for ch in s1: ... if ch.isalpha(): ... slist.append(ch) ... >>> print(slist) ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd'] >>> ''.join(slist) 'helloworld'
-
列表解析可以將以上代碼簡化成一行:
>>> ''.join([ch for ch in s1 if ch.isalpha()]) 'helloworld'
-
-
將字符串中開頭的非字母字符去除
-
分析:對於去除字符串開頭的非字母字符,這個功能的實現只要找到左邊第一個字母的小標,然后取切片。
-
直接取下標
>>> s1 = '123#%4hello*world000' >>> for i in range(len(s1)): ... if s1[i].isalpha(): ... break ... >>> print(s1[i:]) hello*world000
-
通過enumerate內建函數
>>> s1 = '123#%4hello*world000' >>> for ind,ch in enumerate(s1): ... if ch.isalpha(): ... break ... >>> print(s1[ind:]) hello*world000
-
-