a = [1, 2, 3] b = [1, 2, 4] print(id(a[1] == id(b[1]))
环境:Windows python 3.9.8 spyder3
python为了提高内存利用效率会对一些简单对象采用重用对象内存的办法
如一些数值较小的int对象,字符串对象等
python中对于小整数对象有一个小整数对象池,范围在[-5, 257)之间
对于这个范围内的整数,不会新建对象,而是直接从小整数对象池中取
strs = ['a', 'ab', 'abc', 'python'] y = filter(lambda s: len(s) > 2, strs) tmp = list(map(lambda s: s.upper(), y)) print(tmp)
参考文章: Lambda表达式|官方参考文档
# 1 匿名函数只能是单个表达式
# 2. 可以把匿名函数用作传递的实参
第一个参数是一个筛选函数
第二个参数是一个可迭代对象
返回的是一个生成器类型
filter()把传入的function依次作用于iterable的每个元素
满足条件的返回true
不满足条件的返回false
通过true还是false决定将该元素丢弃还是保留
参考文章:Python3 replace()方法 | 菜鸟教程
strs = 'I like python and java' print(strs.replace('I', 'Your')) print(strs.replace('a', '*', 2))
str.replace(old: str, new: str, count: int=...)
''' 参数说明
old: str -- 将要替换的子字符串
new: str -- 新的字符串,用来替换materials
count: int=... -- 可选参数,设置替换次数
'''
tmp = [1, 2, 3, 4, 5, 6] print(tmp[5::-2])
# 使用负数索引值截取
lists = ['Vitamin', 'Apple', 'Zero Two', 'Python']
print(lists[-1])
# 使用方括号的形式截取字符串
nums = [i for i in range(10, 101, 10)]
print(nums)
print(nums[-5: -1])
参考文章: python中的r_云浩舟的博客-CSDN博客_python r
print(r"\nwoow") print("\nwoow")
'\'是转义符
r会使字符串中的'\'失效, '\'不在具有转义的作用
在上述实例中, 目的是为了完整的输出
\nwoow
若没有r, 则会输出
woow
参考文章:深复制与浅复制_疯狂的生长的博客-CSDN博客_深复制和浅复制
import copy a = [1, 2, 3, 4, ['a', 'b']] b = a c = copy.copy(a) d = copy.deepcopy(a) a.append(5) a[4].append('c')
# 浅拷贝
c = copy.copy(a) // 只会拷贝父对象,不会拷贝子对象
# 深拷贝
d = copy.deepcopy(a) // 完全复制a的值,完全与a无关,对a的任何操作都无法影响d