python 基础---集合

集合(set):可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。{}

 1 set1 = set({1,2,3})
 2 print(set1)
 3
 4 #增 add,update
 5 set1 = {‘alex‘,‘wusir‘,‘ritian‘,‘egon‘,‘barry‘}
 6 set1.add(‘女神‘)
 7 print(set1) #无序
 8 #{‘女神‘, ‘egon‘, ‘barry‘, ‘wusir‘, ‘alex‘, ‘ritian‘}
 9
10 set1.update(‘男神‘) #迭代增加,相当于list中的extend,按对象一个一个加
11 print(set1)
12 #{‘男‘, ‘女神‘, ‘egon‘, ‘barry‘, ‘wusir‘, ‘alex‘, ‘神‘, ‘ritian‘}
13
14 #删  pop,remove,del, clear
15 set1.pop()  #随机删除,有返回值
16 print(set1)
17
18 set1.remove(‘元素‘)  #按元素删除
19 print(set1)
20
21 set1.clear()    #清空集合
22 print(set1)
23
24 del set1      #删除集合
25 print(set1)
26
27 #  查
28 for i in set1:
29     print(i)

交集  &

并集  |

差集  -

反交集  ^

子集和超集1 set1 = {1,2,3}
2 set2 = {1,2,3,4,5,6}
3
4 print(set1 < set2)
5 print(set1.issubset(set2))  # 这两个相同,都是说明set1是set2子集。
6
7 print(set2 > set1)
8 print(set2.issuperset(set1))  # 这两个相同,都是说明set2是set1超集。

集合可变,元素不可变,使用frozenset变成集合不可变

1 s = frozenset(‘barry‘)
2 print(s,type(s))
3 for i in s:
4     print(i)

深浅copy

1 #赋值运算
2 l1 = [1,2,3]
3 l2 = l1
4 l1.append(‘a‘)
5 print("{}\t\t{}".format(l1,l2))
6 #[1, 2, 3, ‘a‘]        [1, 2, 3, ‘a‘]
 1 #浅copy
 2 l1 = [1,2,3]
 3 l2 = l1.copy()
 4 print(l1,l2)
 5 print(id(l1),id(l2))
 6 l2.append(‘a‘)
 7 print(l1,l2)
 8 """
 9 [1, 2, 3] [1, 2, 3]
10 1848031189768 1848031187272
11 [1, 2, 3] [1, 2, 3, ‘a‘]
12 """
 1 l1 = [1,2,[4,5,6],3]
 2 l2 = l1.copy()
 3 print(l1,id(l1))
 4 print(l2,id(l2))
 5 l1.append(‘a‘)
 6 print(l1,l2)
 7 l1[2].append(‘a‘)
 8 print(l1,l2)
 9 print(id(l1[2]))
10 print(id(l2[2]))
11 """
12 [1, 2, [4, 5, 6], 3] 2318104334664
13 [1, 2, [4, 5, 6], 3] 2318103951432
14 [1, 2, [4, 5, 6], 3, ‘a‘] [1, 2, [4, 5, 6], 3]
15 [1, 2, [4, 5, 6, ‘a‘], 3, ‘a‘] [1, 2, [4, 5, 6, ‘a‘], 3]
16 2318104337160
17 2318104337160
18
19 """

对于浅copy来说,第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性。

深Copy

 1 import copy
 2 l1 = [1,2,[4,5,6],3]
 3 l2 = copy.deepcopy(l1)
 4 print(l1,id(l1))
 5 print(l2,id(l2))
 6 l1[2].append(‘a‘)
 7 print(l1,l2)
 8
 9 l1 = [1,[1],2,3,4]
10 l2 = l1[:]
11 l1[1].append(‘a‘)
12
13 print(l1,id(l1))
14 print(l2,id(l2))

对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。

原文地址:https://www.cnblogs.com/dzc18/p/9315123.html

时间: 2024-11-05 22:51:19

python 基础---集合的相关文章

python学习笔记-(七)python基础--集合、文件操作&amp;函数

本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: 1 2 3 4 >>> list_1 = [1,4,4,5,6,7,9,10] >>> list_1 =set(list_1) >>> print(list_1) {1, 4, 5, 6, 7, 9, 10} 2)关系测试:测试两组数据之间的关系,交集.并集.

python基础---集合类型(Sets)

集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的重复.以及科学计算,例如交集.并集.差分和对称差分.通俗点来说,集合是一个无序不重复元素的数据集,其基本功能是进行成员关系测试和消除重复元素. 目前有两种内置的集合类型:set 和 frozenset.set类型是可变的--可以使用add() 和 remove()等方法更改其内容.由于它是可变的,它没有hash值,因此它不能被当做字典的键值或另一集合的元素.frozenset

python基础-集合小结

Python-基础-集合小结 集合 简介 声明 常用操作 成员关系 新增删除 集合间操作 其他 补充 集合 简介 python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. sets 支持 x in set, len(set), 和 for x in set. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. 作为一个无序的集合,sets

python基础-集合

1.声明: 集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典. 创建格式: parame = {value01,value02,...} #可以声明不同类型元素 或者 set(value) #一般为字符串.列表和元组,不能为数字.如果是字符串就表示只能声明同种类型元素 2. '''集合中增加元素,有两种方法 ''' # s.add(x) 方法,一次只能增加

python基础-----集合与函数

字符串 数字 字典 列表 元组 可变不可变: 1.可变:列表.字典 2.不可变:字符串.数字.元组 访问顺序: 1.直接访问:数字 2.顺序访问:字符串,列表,元组 3.映射:字典 存放元素个数: 容器类型:列表,元组,字典 原子:数字,字符串 #集合 1.不同元素组成 2.无序 3.集合中元素必须是不可变类型(字符串,数字,元组) #添加    add #  随机删  pop #   指定删    remove           (删除元素不产在会报错) #discard    (删除元素不

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

Python基础之集合

Python基础三:一.数据类型排序: 可变与不可变: 1.可变:列表,字典 2.不可变:字符串,元组,数字 访问顺序: 1.直接访问:数字 2.顺序访问:字符串,列表,元组 3.映射:字典 存放元素个数: 1.容器类型:列表,元组,字典 2.原子类型:数字,字符串 二.集合 特点: 1.不同元素组成 2.是无序的 3.集合中的元素必须是不可变类型(数字,字符串,元组) 4.定义集合的方式:test = {'xyy','xyyp',1,2,3,4}或test = set('xyy') 三.集合功

python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列

标准库:一些最爱 集合.堆和双端队列 集合 集合Set类位于sets模块中. >>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> set(range(10)) set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 集合是由序列(或其他可迭代的对象)构建的.主要用于检查成员资格,因此,副本是被忽略的: >>> range(10)*2 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Python基础语法&mdash;字符串&amp;语句&amp;集合

Python字符串 Python中不支持char单字符类型,单字符在Python中也是一个字符串 Python字符串更新 更新Python字符串方法 1234 var1 = 'Hello World!'print "Updated String :- ", var1[:6] + 'Python' 实际执行效果为 Updated String :- Hello Python Python转义字符 Python字符串运算符 Python字符串格式化 Python三引号(triple quo