Python数据结构——字符串

简介: Python数据结构——字符串

一、字符串的不变性

1、属于不可变对象,不能通过索引操作来改变字符串对象本身

s = 'I like Python'
s[7] = 'p'

要修改字符串,需要使用字符串的replace()方法,会产生新字符串!

s = 'I like Python'
s1 = s.replace('P','p')
s1

2、对字符串变量使用赋值操作后,该变量将指向一个新的字符串对象

s = 'I like Python'
id(s)
 
t = 'too'
s+=t
id(s)

注意:类似于+=、*=这样的复合赋值运算符对于可变对象和不可变对象的处理不同:

(1)对于列表等可变对象,+=赋值后,变量仍然指向原来的对象(即id(s)不变),但原来的对象改变了;

(2)对于数值、字符串等不可变对象,+=赋值后,变量将指向一个新对象(即id(s)改变) ,因为原来的对象不能被改变。

list1 = [1,2,3]
list2 = ['a','b','c']
id(list1)
 
list1 = list1 +list2
list1
 
id(list1)
 
list1+=list2
list1
 
id(list1)

小结:对于不可变对象,s+=t与s=s+t的作用相同,而对于可变对象,两个操作的作用不同!

二、字符串的常见方法介绍

注意首字母大写方法capitalize()和title()的区别 :

s = 'my python'
print(s.capitalize())
print(s.title())

capitalize()是将第一个单词的首字母大写;

title()是将每一个单词的首字母大写。

三、字符串对象的join()和split()方法

1、join():将字符串/元组/列表中的元素以指定的分隔符(sep)连接生成一个新的字符串;语法:'sep'.join(sequence)

2、split():通过指定分隔符对字符串进行分割,并返回分割后的字符串形成的列表对象;语法:str.split(str=“”, num=string.count(str)),其中str :分隔符,默认为所有的空白字符,包括空格、换行(\n)、制表符(\t)等。 num:分割次数。默认为 -1, 即分隔所有。

s1 = ['love','life,','love','Python!']
s2 = ' '.join(s1)
s2
 
s3 = s2.split()
s3
 
s4 = s2.split(',')
s4

s5 = 'a\tb\n c\nd'
s6 = s5.split()
s6
 
s7 = ''.join(s5.split())
s7

四、删除空白的Istrip()和rstrip()方法

       空白很重要,因为你经常需要比较两个字符串是否相同。一个重要的示例是,在用户登录网站时检查其用户名。不过在非常简单的情形下,额外的空格也可能令人迷惑。所幸,在 Python 中删除用户输人数据中的多余空白易如反掌。


       Python 能够找出字符串开头和末尾多余的空白。要确保字符串未尾没有空白,可使用方法rstrip()。


str = 'python '
str
 
str.rstrip()
 
str

       与变量 str 相关联的字符串末尾有多余的空白。在终端会话中向 Python 询问这个变量的值时,可看到末尾的空格。对变量 str 调用方法 rstrip()后,这个多余的空格被删除了。然而,这种删除只是暂时的,接下来再次询问 str 的值时,你会发现这个字符串与输人时一样,依然包含多余的空白。

        要永久删除这个字符串中的空白,必须将删除操作的结果关联到变量:

str = 'python '
str = str.rstrip()
str

       为删除这个字符串中的空白,要将其末尾的空白剔除,再将结果关联到原来的变量。在编程中,经常需要修改变量的值,再将新值关联到原来的变量。这就是变量的值可能随程序的运行或用户输人数据而发生变化的原因所在。

       你还可以剔除字符串开头的空白,或者同时剔除字符串两边的空白。为此,可分别使用方法lstrip()和strip():

str1 = ' python '
str1.rstrip()
 
str1.lstrip()
 
str1.strip()

       在这个示例中,我们首先创建了一个开头和末尾都有空白的字符串。接下来,分别删除末尾、开头和两边的空白。尝试使用这些剥除函数有助于你熟悉字符串操作。在实际程序中,这些剥除函数最常用于在存储用户输入前对其进行清理。


目录
相关文章
|
12天前
|
Python
python获取字符串()里面的字符
在Python中,如果你想获取字符串中括号(比如圆括号`()`、方括号`[]`或花括号`{}`)内的字符,你可以使用正则表达式(通过`re`模块)或者手动编写代码来遍历字符串并检查字符。 这里,我将给出使用正则表达式的一个例子,因为它提供了一种灵活且强大的方式来匹配复杂的字符串模式。 ### 使用正则表达式 正则表达式允许你指定一个模式,Python的`re`模块可以搜索字符串以查找匹配该模式的所有实例。 #### 示例:获取圆括号`()`内的内容 ```python import re def get_content_in_parentheses(s): # 使用正则表达
64 36
|
7天前
|
存储 索引 Python
Python常用数据结构——集合
Python常用数据结构——集合
21 3
|
7天前
|
存储 数据安全/隐私保护 Python
Python常用数据结构——字典的应用
Python常用数据结构——字典的应用
11 2
|
11天前
|
Python
python第三方库-字符串编码工具 chardet 的使用(python3经典编程案例)
这篇文章介绍了如何使用Python的第三方库chardet来检测字符串的编码类型,包括ASCII、GBK、UTF-8和日文编码的检测示例。
41 6
|
9天前
|
Python
逆天改命!掌握Python并查集,数据结构难题从此不再是你的痛!
在编程旅程中,遇到棘手的数据结构难题是否让你苦恼?别担心,Python并查集(Union-Find)是你的得力助手。这是一种高效处理不相交集合合并及查询的数据结构,广泛应用于网络连通性、社交网络圈子划分等场景。通过维护每个集合的根节点,它实现了快速合并与查询。本文将介绍并查集的基本概念、应用场景以及如何在Python中轻松实现并查集,帮助你轻松应对各种数据结构挑战。
20 3
|
9天前
|
网络协议 网络安全 开发者
Python 向IP地址发送字符串
Python 向IP地址发送字符串
25 2
|
9天前
|
Python
Python 中取字符串中等于号后面的内容
Python 中取字符串中等于号后面的内容在编程过程中,我们经常需要从字符串中提取特定的信息。一个常见的任务是在给定的字符串中查找等于号(=)后面的内容。这种需求在解析配置文件、处理查询字符串或分析日志数据时尤其常见。 如何实现 在Python中,我们可以使用多种方法来实现此功能。以下是几种常用的方法,包括字符串操作和正则表达式。 方法 1:使用字符串分割 我们可以使用字符串的 split() 方法将字符串拆分为两个部分,然后提取等于号后的值。 示例代码 ----------------------------------- ©著作权归作者所有:来自51CTO博客作者bruce_xiao
22 1
|
6天前
|
存储 数据安全/隐私保护 Python
Python常用数据结构—字典
Python常用数据结构—字典
|
6天前
|
存储 索引 Python
Python编程的常用数据结构—列表
Python编程的常用数据结构—列表
|
7天前
|
存储 索引 Python
Python编程的常用数据结构—列表 原创
Python编程的常用数据结构—列表 原创
下一篇
无影云桌面