25、python基础学习-集合

 1 #!/usr/bin/env python
 2 #__author: hlc
 3 #date: 2019/6/1
 4
 5 # set 集合
 6 # 集合 把不同的元素组成一起形成集合,集合时python的基础类型
 7 # 组成集合的成员不可重复
 8 # a = [1,2,3,4,5,1,2,3,4,5,"a","a","a","b","b""b","c"]
 9 # b = set(a) # 通过set关键字定义集合
10 # print(a) # [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ‘a‘, ‘a‘, ‘a‘, ‘b‘, ‘bb‘, ‘c‘]
11 # print(b) # {1, 2, 3, 4, 5, ‘a‘, ‘bb‘, ‘c‘, ‘b‘}
12
13 # 集合对象时一个无序排列的可哈希的值:集合成员可以做字典的键
14 # a = [["asdf",1244],1,2,3,4,5,1,2,3,4,5,"a","a","a","b","b""b","c"]
15 # b = set(a) # TypeError: unhashable type: ‘list‘
16 # print(b)
17
18 # 集合分类:可变集合,不可变集合
19 # 可变集合,可添加和删除元素,非可哈希,不能用作字典的键,也不能作为其他集合的元素,不可变集合与之相反
20 # a = [1,2,3]
21 # b = set(a) # TypeError: unhashable type: ‘set‘
22 # c = {b:"sdf"}
23
24 # 集合的创建
25 # 由于集合没有自己的语法格式,只能通过集合的工厂方法set()和frozenset()创建
26 # s1 = set("asfd")
27 # s2 = frozenset("dsg")
28 # print(s1,type(s1)) # {‘f‘, ‘d‘, ‘a‘, ‘s‘} <class ‘set‘>
29 # print(s2,type(s2) # frozenset({‘d‘, ‘g‘, ‘s‘}) <class ‘frozenset‘>
30
31 # 访问集合
32 # 由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历或使用in、not in来访问或判断集合元素。
33 # s1 = set("asdfsd")
34 # print("a" in s1) # True
35 # s1[0] # TypeError: ‘set‘ object is not subscriptable
36
37 # for i in s1 :
38 #     print(i)
39 # d
40 # s
41 # a
42 # f
43
44 # 更新集合,可使用以下内建方法更新:
45 # s1 = set("asdf")
46 # s1.add()
47 # s1.update()
48 # s1.remove()
49 # 只有可变集合才能更新
50 # s1 = frozenset("gdsfg")
51 # # s1.add() # AttributeError: ‘frozenset‘ object has no attribute ‘add‘
52
53 # s2 = set("sdf")
54 # # s2.add("mmn") # {‘f‘, ‘mmn‘, ‘d‘, ‘s‘}
55 # s2.update("jkl") # {‘d‘, ‘l‘, ‘s‘, ‘k‘, ‘j‘, ‘f‘}
56 # print(s2)
57
58 # s1 = set(["asdf",325,"456"])
59 # # s1.remove(325) # {‘456‘, ‘asdf‘}
60 # s1.pop() # {‘asdf‘, 325}
61 # s1.clear() # set()
62 # del s1 # NameError: name ‘s1‘ is not defined
63 # print(s1)
64
65 # 集合类型的操作符
66 # in ,not in
67 # 集合等价于不等价(==,!=)
68 # 子集 超集
69 # print(set("asd") == set("asdasd")) # True
70 # s = set("adsfas")
71 # s1 = set("ads")
72 # print("s" in s) # True
73 # print(s > s1) # True
74
75 # 联合(|) 联合(union)的操作与集合的or操作其实等价的,联合符号有个等价的方法,union()
76 # s1 = set("qewr")
77 # s2 = set("ghkj")
78 # s3 = s1|s2
79 # print(s3) # {‘e‘, ‘k‘, ‘r‘, ‘h‘, ‘w‘, ‘g‘, ‘q‘, ‘j‘}
80 # print(s1.union(s2)) # {‘e‘, ‘k‘, ‘r‘, ‘h‘, ‘w‘, ‘g‘, ‘q‘, ‘j‘}
81
82 a = set([1,2,3,4,5])
83 b = set([4,5,6,7,8])
84
85 # 交集 intersrction()等同于 a & b
86 # print(a.intersection(b)) # {4, 5}
87 # 并集 union 等同于 a | b
88 # print(a.union(b)) # {1, 2, 3, 4, 5, 6, 7, 8}
89 # 差集 difference 等同于a - b
90 # print(a.difference(b)) # {1, 2, 3}
91 # print(b.difference(a)) # {8, 6, 7}
92 # 对称差集(反向交集) symmetric_difference  等同于 a ^ b
93 # print(a.symmetric_difference(b)) # {1, 2, 3, 6, 7, 8}
94 # 父集,超集
95 # print(a.issuperset(b)) # >  False
96 # 子集
97 # print(a.issubset(b)) # < False

原文地址:https://www.cnblogs.com/hlc-123/p/10960311.html

时间: 2024-10-11 08:02:52

25、python基础学习-集合的相关文章

python基础学习-集合

#__author:"Feng Lin" #date: 2018/8/26 #集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希的(所以集合做不了字典的键) #集合注意记住以下几点 #1.元素去重 #2.关系测试,交集.并集.差集 set1=set({1,2,3}) #集合中的元素不可变类型,否则会报错 #set2={1,2,3,{'name':'alex'},[1,2]} #集合增加元素,add.update set1={'wangjinxi

Python 基础学习 网络小爬虫

<span style="font-size:18px;"># # 百度贴吧图片网络小爬虫 # import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r'src="(.+?\.jpg)" pic_ext' imgre = re.compile(reg) imgli

python基础学习05(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #dict{键:值} #哈希 #注:字典是无顺序的,所以你懂的 #创建与赋值 dict1={} dict2={'name':'apply','avg':24,'sex':'man'} print dict1,dict2

python基础学习07(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #file与input output #文件对象 #简单说来,就是写入和读取的方式 #file(),open()2个操作都是一样的,一般推荐open() #语法 # open(name[, mode[, bufferin

python基础学习12(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #python class #面向对象编程oop思想,3个特性:封装.继承.多态,在其他方面的功能,比如重载,模拟等,也可以自定义自己需要的类 #在python中,面向对象主要2个:类和类实例 #类与实例 #类与实例有关

python基础学习09(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #什么是函数 #就是引用,创建,使用 #例子 def foo(): print '233' foo() #返回与函数类型 def foo1():#是一个过程 print 'hello world!' foo1() foo

Python基础学习五

Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出键值对. for key in dict: #迭代键 for val in dict.value(): #迭代值 for k,v in dict.items(): #迭代键值对 当迭代列表时,通过内置函数enumerate()可以迭代出索引加值. for i in list #迭代列表 for i

python基础学习日志day5-各模块文章导航

python基础学习日志day5---模块使用 http://www.cnblogs.com/lixiang1013/p/6832475.html python基础学习日志day5---time和datetime模块 http://www.cnblogs.com/lixiang1013/p/6848245.html python基础学习日志day5---random模块http://www.cnblogs.com/lixiang1013/p/6849162.html python基础学习日志da

Python基础学习(九)

Python 多线程 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 程序的运行速度可能加快 在一些等待的任务实现上如用户输入.文件读写和网络收发数据等,线程就比较有用了.在这种情况下我们可以释放一些珍贵的资源如内存占用等等. 线程在执行过程中与进程还是有区别的.每个独立的线程有一个程序运行的入口.顺序执行序列和程序的出口.