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

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


目录
相关文章
|
7天前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
102 66
|
2月前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
128 64
|
2月前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
150 59
|
2月前
|
存储 开发者 Python
Python 中的数据结构与其他编程语言数据结构的区别
不同编程语言都有其设计理念和应用场景,开发者需要根据具体需求和语言特点来选择合适的数据结构
|
11天前
|
存储 运维 监控
探索局域网电脑监控软件:Python算法与数据结构的巧妙结合
在数字化时代,局域网电脑监控软件成为企业管理和IT运维的重要工具,确保数据安全和网络稳定。本文探讨其背后的关键技术——Python中的算法与数据结构,如字典用于高效存储设备信息,以及数据收集、异常检测和聚合算法提升监控效率。通过Python代码示例,展示了如何实现基本监控功能,帮助读者理解其工作原理并激发技术兴趣。
49 20
|
2月前
|
存储 开发者 索引
Python 中常见的数据结构
这些数据结构各有特点和适用场景,在不同的编程任务中发挥着重要作用。开发者需要根据具体需求选择合适的数据结构,以提高程序的效率和性能
|
2月前
|
存储 算法 搜索推荐
Python 中数据结构和算法的关系
数据结构是算法的载体,算法是对数据结构的操作和运用。它们共同构成了计算机程序的核心,对于提高程序的质量和性能具有至关重要的作用
|
2月前
|
数据采集 存储 算法
Python 中的数据结构和算法优化策略
Python中的数据结构和算法如何进行优化?
|
27天前
|
存储 测试技术 Python
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
44 5
|
1月前
|
Python
使用Python计算字符串的SHA-256散列值
使用Python计算字符串的SHA-256散列值
39 7

热门文章

最新文章