python 问题收录

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]]]

你可能感兴趣的:(python 问题收录)