python字符串的一些常用小技巧


字符串的操作是经常用到的,即使去面试,面试官也会必问几个字符串处理的问题考察应聘者基础,我就先抛砖引玉把自己用过的字符串处理先分享出来,欢迎拍砖

字符串的切割

字符串的拆分可以直接利用split函数进行实现,返回的是列表

print(str1.split(" "))
#output
['hello', 'python']

这里再提一个函数strip(),他的作用是默认去掉字符串首尾的空格

str2 = "  hello  "
print(str2.strip())
#output
hello

字符串的合并

list1 = ["hello","python"]
print(" ".join(list1))
#output
hello python

字符串合并是利用python的join()函数,将序列中的元素以指定的字符(这里是空格)连接生成一个新的字符串

字符串的分片

python里面对字符串分片是非常简便的,废话不多说,直接看代码

str1 = "hello python"
print(str1[2:8])
#output  llo py
print(str1[:2])
#output  he
print(str1[:-2])
#output  hello pyth
print(str1[-5:-2])
#output  yth

从结果应该就能看出来,默认从第一个字符开始计算,也可以自己设置起始字符串,负号表示从字符串末尾开始计数
但是要注意的是这里的分片并不是真正意义上的切割,并没有改变原始字符串的长度,和split函数是不一样的

字符串的翻转与间隔

字符串的翻转和上述用法类似,只是要多一个冒号而已

print(str1[::-1])
print(str1[::-2])
print(str1[::1])
print(str1[::2])

#output
nohtyp olleh
nhy le
hello python
hlopto

这里的负号就表示是翻转,而数字表示间隔多少个字符

字符串的回文判断

字符串的回文判断就可以利用翻转的技巧

if str1 == str1[::-1]:
    print("是回文字符串")
else:
    print(str1 +"不是回文字符串")
#output
hello python不是回文字符串

字符串的单词大小写

print(str1.title()) #单词首字母大写
print(str1.upper()) #单词所有字母大写
print(str1.upper().lower()) #单词所有字母小写
print(str1.capitalize()) #字符串字母大写

#output
Hello Python
HELLO PYTHON
hello python
Hello python

判断字符串所含元素是否相同

注意我们是要判断字符串所含元素是否相同,不是相等,直接看例子吧,这样会更明白一点

扫描二维码关注公众号,回复: 10082185 查看本文章
from collections import Counter
str1 = "hello"
str2 = "hlloe"
str3 = "lolhe"
cn_str1,cn_str2,cn_str3 = Counter(str1),Counter(str2),Counter(str3)
print(cn_str1,cn_str2,cn_str3)
if(cn_str1==cn_str2 and cn_str2==cn_str3):
    print("所含元素相同")

#output
Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1}) Counter({'l': 2, 'h': 1, 'o': 1, 'e': 1}) Counter({'l': 2, 'o': 1, 'h': 1, 'e': 1})
所含元素相同

我们判断元素相同是忽略掉元素的顺序,简单来说就是统计一下每个字符串的元素和每个元素出现的次数是否都相同,所以这就是我们这里会用到python的用于统计的库
我们也顺便看一下出现次数最多的元素吧,以str1为例

print(Counter(str1).most_common(2))
#output:
[('l', 2), ('h', 1)]

这里我们打印的是出现次数最多的前两个元素

将数字字符串转化为数字列表

str1 = "123456"
list1 = list(map(int,str1))
print(list1)
#output
[1, 2, 3, 4, 5, 6]

如果不这么处理,直接转列表的话,结果会是这样的

print(list(str1))
#output
['1', '2', '3', '4', '5', '6']

这样存到列表的就不是数字,而是字符串,这里我就简单介绍一下map函数的应用
map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表,具体用法一般是

map(function, iterable,iterable...)

我们这里使用map就相当于把字符串的每个元素都转为int类型数据存放在列表中

发布了21 篇原创文章 · 获赞 28 · 访问量 3708

猜你喜欢

转载自blog.csdn.net/LPJCSY/article/details/104835125