1. 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF",要求如下
1.1 請將a字符串的大寫改為小寫,小寫改為大寫
print a.swapcase()
1.2 請將a字符串的數字取出,並輸出成一個新的字符串
print ''.join([s for s in a if s.isdigit()])-->3479
1.3 請統計a字符串出現的每個字母的出現次數(忽略大小寫,a與A是同一個字母),並輸出成一個字典。 例 {'a':4,'b':2}
a = a.lower(a) #全部小寫,upper() 全部大寫
print dict([(x,a.count(x)) for x in set(a)]) #先轉成集合,然后去原字符串中查找每個字符,效率高
1.4 請去除a字符串多次出現的字母,僅留最先出現的一個。例 'abcabb',經過去除后,輸出 'abc'
a_list = list(a) #轉成list
set_list = list(set(a_list)) #去重以后再轉回list
set_list.sort(key = a.list.index) #對去重以后的list進行原先的排序
1.5 請將a字符串反轉並輸出。例:'abc'的反轉是'cba'
print a[::-1] #步進為-1時就是反轉
1.6 去除a字符串內的數字后,請將該字符串里的單詞重新排序(a-z),並且重新輸出一個排序后的字符 串。(保留大小寫,a與A的順序關系為:A在a前面。例:AaBb)
l = sorted(a)排序,先數字再大寫后小寫的從小到大列表
a_upper_list = [] #大寫數組
a_lower_list = [] #小寫數組
for x in l:#遍歷
if x.isupper():
a_upper_list.append(x) #如果是大寫就添加到 大寫數組里
elif x.islower():
a_lower_list.append(x) #小寫添加到 小寫數組里
else:
pass
for y in a_upper_list: #遍歷大寫數組
y_lower = y.lower() #把每個元素轉成小寫
if y_lower in a_lower_list: #如果小寫元素在 小寫數組里
a_lower_list.insert(a_lower_list.index(y_lower),y) #通過值來獲取對應的索引,然后在其前面插入該大寫字母
print ''.join(a_lower_list) #將小寫數組分割成字符串
1.7 請判斷 'boy'里出現的每一個字母,是否都出現在a字符串里。如果出現,則輸出True,否則,則輸 出False.
a = "aAsmr3idd4bgs7Dlsf9eAF"
search = 'boy'
u = set(a) #轉成集合,去重
u.update(list(search)) #把search字符串轉成列表,然后用每個元素去集合u里面去找,如果沒有就更新到u里面,如果有就繼續找下一個元素
print len(set(a) ) == len(u)) #如果左右兩邊的len相同就說明每一個字母都出現在字符串里面了,返回true,反則返回false
1.8 要求如1.7,此時的單詞判斷,由'boy'改為四個,分別是 'boy','girl','bird','dirty',請判斷如上這4個字符串里的每個字母,是否都出現在a字符串里。
search = ['boy','girl','bird','dirty']
b = set(a)
for i in search:
b.update(list(i))
print len(b) == len(set(a))
1.9 輸出a字符串出現頻率最高的字母
l = ([x,a.count(x) for x in set(a)])
l.sort(key = lambda k:k[1],reverse = True)
print[0][0]
2.在python命令行里,輸入import this 以后出現的文檔,統計該文檔中,"be" "is" "than" 的出現次數。
4.已知 a = [1,2,3,6,8,9,10,14,17],請將該list轉換為字符串,例如 '123689101417'.
print str(a)[1:-1].replace(',','')
