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))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章