1 已知a = [1, 2, 3]和b = [1, 2, 4],那么id(a[1])==id(b[1])的执行结果
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)之间
对于这个范围内的整数,不会新建对象,而是直接从小整数对象池中取
2 在Python3中,下列程序运行结果为:
strs = ['a', 'ab', 'abc', 'python'] y = filter(lambda s: len(s) > 2, strs) tmp = list(map(lambda s: s.upper(), y)) print(tmp)
2.1 Lambda 表达式
参考文章: Lambda表达式|官方参考文档
# 1 匿名函数只能是单个表达式
# 2. 可以把匿名函数用作传递的实参
2.2 filter(function, iterable)
第一个参数是一个筛选函数
第二个参数是一个可迭代对象
返回的是一个生成器类型
filter()把传入的function依次作用于iterable的每个元素
满足条件的返回true
不满足条件的返回false
通过true还是false决定将该元素丢弃还是保留
2.3 map(function, iterable)
3 在Python3中,字符串的变换结果为:
strs = 'I like python and java' print(strs.replace('I', 'Your')) print(strs.replace('a', '*', 2))
3.1 字符串的replace方法
str.replace(old: str, new: str, count: int=...)
''' 参数说明
old: str -- 将要替换的子字符串
new: str -- 新的字符串,用来替换materials
count: int=... -- 可选参数,设置替换次数
'''
4 在Python3中,下列程序运行结果为:
tmp = [1, 2, 3, 4, 5, 6] print(tmp[5::-2])
4.1 列表的切片
# 使用负数索引值截取
lists = ['Vitamin', 'Apple', 'Zero Two', 'Python']
print(lists[-1])
# 使用方括号的形式截取字符串
nums = [i for i in range(10, 101, 10)]
print(nums)
print(nums[-5: -1])
5 What gets printed?()
print(r"\nwoow") print("\nwoow")
'\'是转义符
r会使字符串中的'\'失效, '\'不在具有转义的作用
在上述实例中, 目的是为了完整的输出
\nwoow
若没有r, 则会输出
woow
6 下面代码运行后,a、b、c、d四个变量的值
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