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()

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


目录
相关文章
|
1月前
|
算法 开发者 计算机视觉
燃爆全场!Python并查集:数据结构界的网红,让你的代码炫酷无比!
在编程的世界里,总有一些数据结构以其独特的魅力和高效的性能脱颖而出,成为众多开发者追捧的“网红”。今天,我们要介绍的这位明星,就是Python中的并查集(Union-Find)——它不仅在解决特定问题上大放异彩,更以其优雅的设计和强大的功能,让你的代码炫酷无比,燃爆全场!
38 0
|
13天前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
35 6
|
1月前
|
Python
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
本篇将详细介绍Python中的字符串类型及其常见操作,包括字符串的定义、转义字符的使用、字符串的连接与格式化、字符串的重复和切片、不可变性、编码与解码以及常用内置方法等。通过本篇学习,用户将掌握字符串的操作技巧,并能灵活处理文本数据。
54 1
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
|
1月前
|
自然语言处理 Java 数据处理
【速收藏】python字符串操作,你会几个?
【速收藏】python字符串操作,你会几个?
56 7
|
1月前
|
Python
Python 中常见的数据结构(二)
Python 中常见的数据结构(二)
|
1月前
|
存储 索引 Python
Python 中常见的数据结构(一)
Python 中常见的数据结构(一)
|
1月前
|
开发者 Python
Python 常用的数据结构
Python 常用的数据结构
|
1月前
|
索引 Python
Python 高级编程:深入探索字符串切片
在Python中,字符串切片功能强大,可灵活提取特定部分。本文详细介绍切片技巧:基本切片、省略起始或结束索引、使用负数索引、设定步长及反转字符串等。此外,还介绍了如何结合其他操作进行切片处理,如先转换大小写再提取子串。 来源:https://www.wodianping.com/yeyou/2024-10/48238.html
38 4
|
1月前
|
存储 索引 Python
python数据结构之列表详解
列表是Python中极为灵活和强大的数据结构,适合于存储和操作有序数据集合。掌握其基本操作和高级特性对于编写高效、清晰的Python代码至关重要。通过本回答,希望能帮助你全面理解Python列表的使用方法,从而在实际编程中更加游刃有余。
23 0
|
1月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
32 0
下一篇
无影云桌面