Python合集之Python字符串常用操作(一)

liftword2个月前 (04-08)技术文章19

在上一节的合集中,我们了解了Python集合增删改及集合间运算的相关知识,本节我们将进一步了解一下Python字符串的常用操作的相关知识。

1.拼接字符串

使用 + 运算符可完成对多个字符串的拼接,+ 运算符可以连接多个字符串并产生一个字符串对象。

例如:

mot_en='Remembrance is a form of meeting. Forgetfulness is a form  of freedom. '
mot_cn='记忆是一种相遇,遗忘是一种自由。'
print(mot_en+'——'+mot_cn)

注:字符串是不允许直接与其他类型的数据拼接的,否则会抛出异常信息,因此在拼接其他的数据类型时候,需要将其转换为字符串类型进行拼接。

2.计算字符串的长度

由于不同的字符所占字节数不同,所以要计算字符串的长度,需要先了解各个字符所占的字节数。在Python中,数字、英文、小数点、下划线和空格占一个字节,一个汉字可能会占2~4个字节,占几个字节取决于采用的编码,汉字在GBK/GB2312 编码中占2个字节,在UTF-8/unicode 编码中一般占用3个字节(或4个字节)。

在Python中,提供了len()函数计算字符串的长度,语法格式如下:

len(string)
参数说明:
string:表示要进行长度统计的字符串

例如:

str1='人生苦短,我用Python!'
length=len(str1)
print(length)

上面的代码,执行后得到的结果是14。从这个结果中可以看出,默认情况下,通过len()函数计算字符串的长度时,不区分英文,数字和汉字,所有的字符都按一个字符去计算。

在实际的开发中,有时需要获取字符串实际占用的字节数,即如果是采用UTF-8编码,汉字所占3个字节,采用GBK或者GB2312,汉字所占2个字节,这时可以通过encode()方法进行编码后,在进行获取。

例如上面的例子,可以采用下面的代码,来获取采用UTF-8实际所占的字节数:

str1='人生苦短,我用Python!'
length=len(str1.encode())
print(length)

上面的代码执行后的结果为28个字节数,这是因为汉字加中文的标点符号共7个,占21个字节,英文字母加英文的标点符号占7个字节,共28个字节。

如果要想采用GBK编码来计算上面例子的所占字节数,可以采用下面的代码:

str1='人生苦短,我用Python!'
length=len(str1.encode('gbk'))
print(length)

上面的代码执行后的结果为21个字节数,这是因为汉字加中文的标点符号共7个,占14个字节,英文字母加英文的标点符号占7个字节,共28个字节。

花絮:

本期的Python 字符串的常用操作就分享到这里,下期我们将继续分享Python字符串的截取及其他常用操作的相关知识,感兴趣的朋友可以关注我。

相关文章

Python拼接字符串的5种方法

#挑战30天在头条写日记#当涉及到在Python中拼接字符串时,有多种方法可供选择。正确选择字符串拼接方法可以使你的代码更清晰、更高效。在本博客中,我们将总结一些常见的Python字符串拼接方法,并提...

Python高手都在用的字符串拼接神器!.join()方法你真的会用吗?

还在用+号手动拼接字符串?小心内存爆炸和效率“翻车”!Python中有一个隐藏的字符串处理神器——.join(),它能让你的代码简洁高效,轻松应对海量数据拼接!今天,3分钟带你解锁它的高阶玩法,告别低...

Python字符串处理终极指南:从基础到高效实践

一、基础操作强化1. 智能拼接方案对比# 性能基准测试(百万次操作) "+" 运算符:0.82s join() 方法:0.12s f-string:0.15s # 多类型拼接 print(f"用户{...

Python:字符串操作常用方法

字符串的方法很多,下面介绍几个常用的字符串函数。1.find()函数 :str.find(substr,begin=0,end=len(str))在字符串中查找子串,若找到返回子串的第一个字符的索引,...

Pythonic 技巧——Python 优雅实现字符串交织的 N 种姿势

在 Python 中,字符串交织(String Interleaving)是一个常见的操作,例如合并日志信息、生成加密密钥或处理多源数据流。今天我们将分享 7 种 实现字符串交织的方法,涵盖从基础到高...

Python基本数据类型之字符串

字符串由若干个字符组成,用双引号(" ")、单引号(' ')或者三引号(''' '''或者""" """)包围。例如:name='孙悟空' # 定义一个表示名字的变量name,并赋值为孙悟空 addr...