python 集合 copy()
函数用于浅复制集合。
语法
语法如下:set.copy()
参数
没有参数。
返回值
返回集合的浅复制副本。
程序示例
介绍一些例子,了解set.copy()
函数的使用方法。
例1
#!/usr/bin/python
# coding=utf-8
lang = {'python', 'java', 'php', 'c'}
copyLang = lang.copy()
print("原集合: ", lang)
print("复制集合: ", copyLang)
程序运行结果:
原集合: {'c', 'php', 'java', 'python'}
复制集合: {'c', 'php', 'java', 'python'}
复制集合: {'c', 'php', 'java', 'python'}
上面的例子中,因集合无序的,所以每次输出的结果可能不一样。
例2
下面给出一个修改副本集合的例子。
#!/usr/bin/python
# coding=utf-8
lang = {'python', 'java', 'php', 'c'}
copyLang = lang.copy()
copyLang.add('nodejs')
print("原集合: ", lang)
print("复制集合: ", copyLang)
程序运行结果.:原集合: {'python', 'php', 'c', 'java'}
复制集合: {'php', 'nodejs', 'c', 'python', 'java'}
复制集合: {'php', 'nodejs', 'c', 'python', 'java'}
我们看到修改副本的集合之后,原集合的元素是没有改变的,与之对应的,我们可以看下例子3。
例3
如果使用=号复制呢?那么它复制的是对象的地址,当修改假的副本的时候,原集合也会随之修改。
#!/usr/bin/python
# coding=utf-8
lang = {'python', 'java', 'php', 'c'}
copyLang = lang
copyLang.add('nodejs')
print("原集合: ", lang)
print("复制集合: ", copyLang)
程序运行结果:
原集合: {'java', 'c', 'python', 'nodejs', 'php'}
复制集合: {'java', 'c', 'python', 'nodejs', 'php'}
复制集合: {'java', 'c', 'python', 'nodejs', 'php'}
这个不难理解,因为 = 号并没有赋值。