集合

作者: 大冰S | 来源:发表于2019-11-13 19:57 被阅读0次

集合

集合(set)的特点

  • 无序性(用{}都没有索引)
  • 互异性
  • 确定性——集合中的元素不能有可变对象,如列表、字典

如何创建集合

  • 可变集合
  • 不可变集合

s = {1, 2, 3}
type(s)
<class 'set'>
s2 = {2, 1, 3}
s == s2
True
s= {1,2,2,3}
s
{1, 2, 3} #互异性
lst = [1, 2, 2, 3, 3, 4, 4, 5]
set(lst)
{1, 2, 3, 4, 5}
fs = frozenset({1, 2, 3})
fs
frozenset({1, 2, 3}) # 不可变集合

集合的方法

增加元素的方法

  • add
  • update

s.add(99)
s
{99, 1, 2, 3}
s.update(set({'hello', 'python'}))
s
{1, 2, 99, 3, 'hello', 'python'}

删除元素

  • pop
  • remove
  • discard——就集合中没有该元素,也不会报错
  • clear

s.pop()
1
s.pop()
2
s.remove('hello')
s
{99, 3, 'python'}
s.discard(3)
s
{99, 'python'}
s.remove(3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 3
s.discard(3)

集合的关系和运算

  • 元素和集合的关系
  • 集合与集合的关系
  • 集合间的运算
    • 并集
    • 交集
    • 差集

a = set([1, 2, 3, 4, 5, 6])
b = set([1, 2, 3])
a.issuperset(b) #a是否为b的超集
True
b.issubset(a) #b是否为a的子集
True

a.union(b)
{1, 2, 3, 4, 5, 6}
a | b
{1, 2, 3, 4, 5, 6}
并集
a.intersection(b)
{1, 2, 3}
a & b
{1, 2, 3}
交集
a.difference(b)
{4, 5, 6}
a - b
{4, 5, 6}
b - a
set()
差集

浅拷贝和深拷贝

  • 容器:列表、元组、字典、(可变)集合
  • 列表、字典、集合:
    • 浅拷贝:只拷贝最外层
    • 深拷贝:import copy

浅拷贝

lst = [1, 2, 3]
lst2 = lst.copy()
id(lst)
1653129624576
id(lst2)
1653129624512
lst = [[1, 2, 3]]
lst2 = lst.copy()
id(lst[0])
1653129625088
id(lst2[0])
1653129625088
lst[0].append(888)
lst2
[[1, 2, 3, 888]]

深拷贝

import copy
lst
[[1, 2, 3, 888]]
dlst = copy.deepcopy(lst)
dlst
[[1, 2, 3, 888]]
id(lst[0])
1653129625088
id(dlst[0])
1653129698240

相关文章

  • 我的Swift的学习总结 -->第二周

    集合 集合:Set,定义一个集合可以写成:var 集合名 : Set<集合类型> = [集合元素],具体的集合应用...

  • markdown 测试

    集合 集合 集合 引用

  • kotlin学习第五天:集合,高阶函数,Lambda表达式

    集合 list集合 list集合分为可变集合与不可变集合。由list of创建的集合为不可变集合,不能扩容,不能修...

  • kotlin练习 ---- 集合练习

    kotlin练习 - 集合练习 Set集合 Set集合创建 Set集合的使用 List集合 List集合创建 Li...

  • 集合总结

    集合 集合分为单列集合和双列集合两种: 一.单列集合: Collection是单列集合的顶级接口: 其中有三类集合...

  • 映射、元组、集合

    映射 元组 集合 集合之seq 集合之set 集合之map

  • 16.Collection集合

    主要内容: Collection 集合 迭代器 增强for List 集合 Set 集合 1,集合 集合是java...

  • 集合与有序集合

    集合分为有序集合 (zset) 和无序集合 (set), 一般无序集合也直接说成集合 无序集合 (set) 无序集...

  • python入坑第八天|集合

    好的,各位蛇友,我们今天来学习集合。 内容: 集合的创建 集合操作符号 集合的内置函数 集合的创建 集合用set(...

  • 集合框架

    集合框架的概念 集合:存放数据的容器 集合框架:java中,用于表示集合,以及操作集合的类和接口的统称 数组与集合...

网友评论

      本文标题:集合

      本文链接:https://www.haomeiwen.com/subject/djgobctx.html