Python基础知识_day3_列表

1. 可变字符串

在Python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,只能创建新的字符串对象。但是,经常我们确实需要原地修改字符串,可以使用io.StringIO对象或array模块

import io
s = 'hello world'
ios = io.StringIO(s)
print(ios.getvalue()) #获取值
ios.seek(6) #移动光标到第六个字符
ios.write('CHINA') #从第六个字符开始写入
print(ios.getvalue()) # hello CHINA
#通过io模块,实现字符串的修改,并没有重新创建

运算符补充

a=7
print(3<a<10) #True

2. 序列

序列是一种数据存储方式,用来存储一系列的数据。

常用的序列结构包括:字符串、列表、元组、字典、集合

  • 举例说明

列表 a = [10,20,30,40]

内存中先创建10,20,30,40 四个对象,然后把四个对象的地址依次存到列表中
在这里插入图片描述从图示中,我们可以看到序列中存储的是整数对象的地址,不是整数对象的值

3. 列表

3.1 list() 创建列表

将任何可迭代的数据转化成列表

print(list('我学python'))
# [ '我', '学', 'p', 'y', 't', 'h', 'o', 'n']
print(list(range(1,10)))
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

3.2 range() 创建整数列表

print(list(range(10,1,-1)))
# [10, 9, 8, 7, 6, 5, 4, 3, 2]
# range 默认从小到大,从大到小,步长为负

3.3 列表推导式

a = [x**2 for x in range(10)]
print(a)
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
b = [x**2 for x in range(10) if x%2 == 0]
print(b)
# [0, 4, 16, 36, 64]

3.4 列表操作

3.4.1 扩展

append, insert, extend 对原列表进行操作

  • 加法,乘法扩展

但使用+,*号进行拼接,会创建一个新的列表对象,如下所示,拼接前后,变量a所指向的内存地址发生了变化

a = [10,20]
print(id(a)) #3116689118208
a = a + [30]
print(a) #[10, 20, 30]
print(id(a)) #3116689118656

3.4.2 删除

del, pop, remove 对原列表进行操作

3.4.3 索引

index()可以获得指定元素首次出现的索引位置,还可以指定搜索的范围

a = [3,3,2,4,3]
print(a.index(3,1,4)) #1

3.4.4 count()

指定元素在列表中出现的次数

a = [12,3,2,4,3]
print(a.count(3)) #2

3.4.5 排序

  • sort, reverse,random.shuffle 都是对原列表进行操作

随机排序

import random
a = [1,3,8,4,6]
print(id(a)) #2941071840064
random.shuffle(a)
print(a) #[6, 1, 4, 8, 3]
print(id(a)) #2941071840064
  • 内置方法 sorted 排序,生成新的列表
a = [1,3,8,4,6]
print(id(a)) #1788263846848
a = sorted(a)
print(a)
print(id(a)) #1788263847616

3.4.5 大小比较

内置方法 max, min, sum

4. 元组

元组属于不可变序列,不可修改元组中的元素。

a= 10,20,30 #中括号可不写
print(type(a)) #<class 'tuple'>
b = 40, #元组中只有一个原素,逗号要跟上
print(type(b)) #<class 'tuple'>

修改元组中的元素。

a= 10,20,30 #中括号可不写
print(type(a)) #<class 'tuple'>
b = 40, #元组中只有一个原素,逗号要跟上
print(type(b)) #<class 'tuple'>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值