Python基础笔记(三)原对象修改字符串、序列、列表、元组等

1456-张同学

发表文章数:22

热门标签

首页 » Python » 正文

1.原对象修改字符串

Python中的字符串属于不可变对象,如果修改,会创建新的对象,可想而知,再需要频繁修改字符串时会产生大量的对象,占用较多内存;

为了实现原对象修改字符串,可以使用io.StringIO对象:

import io
str = "hello world"
str1=io.StringIO(str)
print(str1.getvalue())
print(id(str1.getvalue()))
str1.seek(5)
str1.write('#')
print(str1.getvalue())
print(id(str1.getvalue()))

Python基础笔记(三)原对象修改字符串、序列、列表、元组等

可以看到,字符串已被修改,但引用的对象仍是同一对象。

2.Python中的序列

序列是一种数据存储方式,用来存储一系列的数据。在内存中,序列就是一块用来存放 多个值的连续的内存空间;

序列中存储的是整数对象的地址,而不是整数对象的值。python 中常用的序列结构有: 字符串、列表、元组、字典、集合。

3.列表

列表中的元素可以各不相同,可以是任意类型,列表大小可变,可随时增加或减少元素。

列表的创建:

#基本语法创建
a = [1,2,3,4,5]
print(a)

#list函数与range合并创建
b = list(range(10))
print(b)

b = list(range(1,11,2))
print(b)

c = "12345"
d = list(c)
print(d)

#推导式创建
e = [x for x in range(20) if x%3==0]
print(e)

Python基础笔记(三)原对象修改字符串、序列、列表、元组等

列表添加元素:append方法,'+'运算符,extend方法,insert方法,'*'运算符,其中'+'运算符和'*'运算符都会产生新的列表对象

a = [1,2,3]
print(a)
print(id(a))

a.append(4)
print(a)
print(id(a))

a = a + [5,6]
print(a)
print(id(a))

a.extend([7,8])
print(a)
print(id(a))

a.insert(3, 'x')
print(a)
print(id(a))

a = a*3
print(a)
print(id(a))

Python基础笔记(三)原对象修改字符串、序列、列表、元组等

列表的切片操作:

切片 slice 操作可以让我们快速提取子列表或修改。标准格式为:

[起始偏移量 start:终止偏移量 end[:步长 step]]

注:当步长省略时顺便可以省略第二个冒号

切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。起始

偏移量小于 0 则会当做 0,终止偏移量大于“长度-1”会被当成”长度-1”。

a = [0,1,2,3,4,5,6,7,8,9]
print(a)
print(id(a))

#可以看到切片产生新的对象了
b = a[:]
print(b)
print(id(b))

b = a[1:7:2]
print(b)
print(id(b))

#负数表示倒数,-5表示倒数第5个
b = a[-5::2]
print(b)
print(id(b))

Python基础笔记(三)原对象修改字符串、序列、列表、元组等

4.元组

Python中的元组属于不可变序列,因此不能增删元素

元组的创建类似于列表,使用""创建,或使用tuple()创建,tuple的输入是一个可迭代的对象;

元组的访问、切片等与列表相同,只不过返回的是元组;

元组的排序中不能使用列表中的list.sorted这样的原地修改对象的方法,只能使用如sorted这样的创建新对象的方法;

标签:

未经允许不得转载:作者:1456-张同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《Python基础笔记(三)原对象修改字符串、序列、列表、元组等》 发布于2020-12-07

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录