1. 正则表达式:
^在正则表达式中,只有两种意思
(1)开头位置
^匹配输入字符串的开始位置 比如 ^abc 表示匹配以abc开头的字符串
(2)非操作
^在方括号表达式中表示不接受该字符集合 比如 [^abc]+ 表示匹配不含有a,b,c三个字符的字符串(其中+表示多个字符)
2. x.sort()与sorted(x)的区别
sort()与sorted()的不同在于,sort是在原位重新排列列表,而sorted()是产生一个新的列表
3. append,extend,浅copy,深copy
1)append(self, object):
其中object表示添加列表末尾的对象,即引用对象的地址:
例:
source = [1, 2, 3]
copy_source = source
source.append(4)
print("source = ", source)
print("copy_source = ", copy_source)
结果:
source = [1, 2, 3, 4]
copy_source = [1, 2, 3, 4]
2)extend(self, iterable):
extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表),iterable表示可迭代对象,即能够直接用于for循环的对象。
例:
source = [1, 2, 3]
copy_source = source
source.extend((4, 5, 6))
print("source = ", source)
print("copy_source = ", copy_source)
结果:
source = [1, 2, 3, 4, 5, 6]
copy_source = [1, 2, 3, 4, 5, 6]
3)浅copy
copy(self),对于浅copy来说,第一层创建的是新的内存地址。第二层开始,指向的是同一个内存地址。
例1:
source = [1, 2, 3]
copy_source = source.copy()
source.append(4)
print("source = ", source)
print("copy_source = ", copy_source)
结果1:
source = [1, 2, 3, 4]
copy_source = [1, 2, 3]
例2:
source = [[[1]], [[2]], [[3]]]
copy_source = source.copy()
source[2].append([4])
print("source = ", source)
print("copy_source = ", copy_source)
结果2:
source = [[[1]], [[2]], [[3], [4]]]
copy_source = [[[1]], [[2]], [[3], [4]]]
4)深copy
copy.deepcopy(x),新的内存地址,可以理解为完全的复制数据。
例:
import copy
source = [[[1]], [[2]], [[3]]]
copy_source = copy.deepcopy(source)
source[2].append([4])
print("source = ", source)
print("copy_source = ", copy_source)
结果:
source = [[[1]], [[2]], [[3], [4]]]
copy_source = [[[1]], [[2]], [[3]]]