python回顾2

103 阅读2分钟

元组

元组是不可变的


t=('cuc','lalala','bbbbb')
print(t)
print(id(t))

t1=tuple(('cuc','lalala','bbbbb'))
print(t1)
print(id(t1))

其中 t和t1的id是相同的!

元组是不可变的,但只是指向位置不变。如果元组中元素为列表,则列表中元素可以修改

t=(10,[20,30],9)
print(t)
print(t[0],type(t[0]),id(t[0]))
print(t[1],type(t[1]),id(t[1]))
print(t[2],type(t[2]),id(t[2]))

#由于[20,30]列表,而列表是可变序列,所以可以向列中添加元素,而列表的内存地址不变
t[1].append(100)
print(t)

集合

s={10,2,3,4,5,5,7,7,7,8}
print(s)

不允许重复元素,但注意集合是无序的

生成式:

s={i for i in range(100)}
print(s)

字符串

字符串的驻留机制

仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量

驻留机制的集中情况

字符串的长度为0和1时
符合标识符的字符串
字符串只在编译时进行驻留,而非运行时
[-5,256]之间的整数数字

字符串分割

s='hello world python'
lst=s.split() #从左侧开始分割  rsplit从右侧开始分割
print(lst)
s1='hello|world|python'
print(s1.split(sep='|')) #参数sep指定分隔符
print(s1.split(sep='|',maxsplit=1))#maxsplit 指定分割的次数

字符串替换

s='hello,Python'
print(s.replace('Python','Java')) #第一个参数指定被替换的子串,第二个参数指定替换子串的字符串,第三个参数指定最大替换次数
#该方法返回替换后的字符串,替换前的字符串不变

字符串切片

[start:end:step]