Python基礎2 字符串必備操作語法及 面試題:輸出字符串中重複的字符,統計字符串中字符出現次數

Python 字符串常見操作及 面試題:輸出字符串中重複的字符,統計字符串中字符出現次數

字符串 str

a=‘hello world’

#字符串 str
a="hello world" #數字、字母、符號、中文

#常規用法:取值和切片
print(len(a)) 
#統計字符串長度
print(a[6]) #索引取值 w
print(a[-1]) #d
#切片  變量名[m:n:k]
print(a[0:13:1])#hello world
print(a[0:13:3])#hlwl

#打印字符編號爲偶數的元素
print(a[0:12:2]) #hlowrd
print(a[::2]) #hlowrd

#使用切片翻轉字符串
print(a[::-1]) #dlrow olleh

#拼接字符串
s1='i'
s2="am"
s3=2 #強制轉換成字符串 str()
print(s1 + s2 +str(s3)) #iam2 使用+拼接,字符串之間沒有空格
print(s1+s2,s3) #iam 2 使用+拼接,逗號會轉換成空格,不同類型的使用,拼接

#格式化輸出 佔位 %d 整型 %f 浮點型 %s字符型,通用
print("我是%s,今年%d歲,身高是:%f"%("helayel",18,180.78))
print("我是{0},今年{1}歲,身高是:{2}".format("helayel",18,180.78))

#字符串函數
a.upper() #全部大寫
a.lower()#全部小寫
a.swapcase()#大寫轉小寫,小寫轉大寫
s=a.replace('o','啊') #hell啊 w啊rld 

替換字符
t=a.replace('o','啊',1) #hell啊 world 替換1次
a.strip()#去掉字符串左右兩邊的空格
a.replace(" ","")# 去掉字符串左右 中間的空格

#find查找元素
print(a.find('a')) #-1 沒有找到返回-1
print(a.find('o')) #4 找到了返回索引,只返回最近的一個
print(a.find('hell')) #0 長度大於1,找到則返回子字符串中 第一個字符所在位置

a.capitalize()#首字母大寫,其他小寫
a.count('o') #字符串中字符o出現次數
a.index('h') #返回h的索引值

b='123'
print(b.isdigit()) #True 只包含數字
print(a[1].islower()) #True
print(a[1].isupper()) #False
print('@'.join(a)) #h@e@l@l@o@ @w@o@r@l@d

print(a.split(' '))#以空格切割,返回的是列表
print(a.split('l')) #str.split(str='',num=次數)str默認爲所有的空字符,包括空格、換行\N,製表符\t等
print(a.split('l', 2))

#字符串轉列表
a="asdfftggthgy"
#方法1
b=list(a)
print(b)

#方法2
d=[]
for i in a:    
    d.append(i)
print(d)

#方法3
s='*'.join(a)
result=s.split('*')
print(result)

面試題目:

1、輸出字符串中重複的字符

def repeat_str(str):    
    i=0 #字符串索引    
    cf="" #記錄重複的數據    
    bcf="" #記錄不重複的數據    
    while i<len(str):        
        if str.count(str[i])>1:            
            if str[i] in cf:                
                i+=1                
                continue            
            cf+=str[i]        
        else:            
            bcf+=str[i]        
            i+=1    
    print("重複的元素有:%s" %cf)    
    print("不重複的元素有:%s" %bcf)
    
repeat_str("euebkdkjdsdd")

統計字符串中字符出現次數:str轉成list再統計
方法一:

def repeatStr(li):    
	duixiang=set(li)    
	dic={}    
	for i in duixiang:        
		dic[i]=li.count(i)    
	result=sorted(dic.items(),key=lambda x:x[1],reverse=True)    
	return result
if __name__=="__main__":    
	str=input("請輸入字符串:")    
	li=[]    
	for i in str:        
		li.append(i)    
	print(li)    
	print(repeatStr(li))

請輸入字符串:hello,world!
[‘h’, ‘e’, ‘l’, ‘l’, ‘o’, ‘,’, ‘w’, ‘o’, ‘r’, ‘l’, ‘d’, ‘!’]
[(‘l’, 3), (‘o’, 2), (’!’, 1), (‘r’, 1), (‘e’, 1), (’,’, 1), (‘d’, 1), (‘h’, 1), (‘w’, 1)]

方法二:

def repeatStr(li):    
    for i in set(li):        
        if li.count(i)>=1:            
            print("%s出現次數爲%d:" %(i,li.count(i)))
            
if __name__=="__main__":    
    str=input("請輸入字符串:")    
    str=' '.join(str) #先在每個字符之間插入一個空格,組成新的字符串    
    li=str.split(' ') # 以空格切割字符串爲列表    
    print(repeatStr(li))

方法三:

def repeatStr(li):    
	from collections import Counter    
	res = Counter(li)    
	print(res)
if __name__=="__main__":    
	str=input("請輸入字符串:")    
    str=' '.join(str) #先在每個字符之間插入一個空格,組成新的字符串    
    li=str.split(' ') # 以空格切割字符串爲列表    
    print(repeatStr(li))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章