(D08)Python-集合,函数初识

版权声明:转载请声明 https://blog.csdn.net/dirckes8813/article/details/83446879

集合 (set)


集合 set

  • 集合是可变的容器
  • 集合内的数据对象都是唯一的(不能重复多次的)
  • 集合是无序的存储结构,集合中的数据没有先后关系
  • 集合内的元素必须是不可变对象
  • 集合是可迭代的(可以用for语句遍历)
  • 集合是相当于只有键没有值的字典(键则是集合的数据)

创建集合的构造函数

  • set() 创建一个空的集合对象(不能用{}来创建空集合)
  • set(iterable) 用可迭代对象来创建新的集合对象

示例:

    s = set()   # s绑定空集合set()
    s = set(range(1, 5))  # s = {1, 2, 3, 4}
    s = set("hello")  # s = {'e', 'o', 'h', 'l'}
  注:
    非空集合用 {} 括起来,内部的各个元素用逗号(,)分隔开

字面值方式来创建非空集合

  • s = {1, 2, 3, 4}
  • s = set(“ABCCBA”)
  • s = set({1:“一”, 3:“三”, 8:“八”})
  • s = set([1, 3.14, “ABC”])
  • s = {True, None, “ABC”, (1, 2, 3)}
  • s = {True, None, “ABC”, [1, 2, 3]} # 出错

集合的运算:

交集 &   并集|  补集-  对称补集^  子集<  超集>

& 生成两个集合的交集
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 & s2 # s3 = {2, 3}

| 生成两个集合的并集
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 | s2 # s3 = {1, 2, 3, 4}

- 生成两个集合的补集
s1 = {1, 2, 3}
s2 = {2, 3, 4}

  • #生成属性s1但不属于s2的所有元素的集合
    s3 = s1 - s2 # s3 = {1}
    s3 = s2 - s1 # s3 = {4}

^ 生成两个集合的对称补集
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 ^ s2 # {1, 4}

< 判断一个集合是另一个集合的子集
> 判断一个集合是另一个集合的超集
s1 = {1, 2, 3}
s2 = {2, 3}
s2 < s1 # True
s1 > s2 # True
s3 = {3, 4, 5}
s1 > s3 # False
s1 < s3 # False
s1 == s3 # False

== != 判断集合相同或不同
{1, 2, 3} != {3, 2, 1} # False

= <= 略

in , not in 运算符

  • 等同于列表的in 运算符
    s1 = {1, 2, 3}
    3 in s1 # True

集合和字典的优点:
in / not in 运算符的运算速度比较快

能用于集合的内建(built-in)函数:
len(x)
max(x)
min(x)
sum(x)
any(x)
all(x)


集合是可迭代对象

集合推导式

  • 集合推导式是用可迭代对象创建集合的表达式

语法:

  • { 表达式 for 变量 in 可迭代对象 [if 真值表达式]}
    注:[] 代表其中的内容可省略

示例:
L = [1, 1, 2, 2, 3, 3, 4, 5, 6, 7, 7]
s = {x ** 2 for x in L}

集合推导式的嵌套等同于列表推导式的嵌套


固定集合 frozenset

  • 固定集合是不可变的,无序的,含有唯一元素的集合

作用:

  • 固定集合可以作为字典的键,还可以作为集合的值

固定集合的构造函数 frozenset

  • frozenset() 创建一个空的固定集合
  • frozenset(iterable) 用可迭代对象创建一个新的固定集合

示例:

fz = frozenset()  
fz = frozenset("hello")
fz = frozenset([1,2,3,4,3,4,5])

固定集合的运算:

  • 交集 & 并集 | 补集 - 对称补集 ^
    in / not 运算符
    < <= > >= == !=
    (以上运算符用法等同于set中的用法)

**固定集合的方法,相当于集合的全部方法去掉修改集合的方法 **



函数 function

什么是函数

  • 函数是可以重复执行的语句块,可以重复调用并执行
  • 函数是面向过程编程的最小单位

作用:

  • 用于封装语句块,提高代码的重用性
  • 定义用户级别的函数
  • 提高代码的可读性和易维护性

def 语句:
语法:

  • def 函数名(形参列表):
    • 语句块

作用:
- 创建一个函数,将语句块打包,用函数名绑定,用来调用

说明:

  1. 函数名的命名规则与变量名的规则相同(必须为标识符)
  2. 函数名是一个变量,它用来绑定函数
  3. 函数有自己的名字空间,在函数外部不可以访问函数内
    部的变量,在函数内部可以访问函数外部的变量,但不能对
    外部的变量赋值
  4. 语句部分不能为空.如果为空需要填允pass语句
  5. 函数如果不需要传入参数,形参列表可以为空

函数调用:
语法:

  • 函数名(实际调用传递参数)

说明:

  • 函数调用是一个表达式
  • 如果函数内部没有return语句,函数执行完毕后返回None
  • 对象的引用

猜你喜欢

转载自blog.csdn.net/dirckes8813/article/details/83446879
D08