Python set集合函数

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'}

上面的例子中,因集合无序的,所以每次输出的结果可能不一样。

例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'}

我们看到修改副本的集合之后,原集合的元素是没有改变的,与之对应的,我们可以看下例子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'}

 这个不难理解,因为 = 号并没有赋值。