1 集合
1.1 集合
集合是一种可变的无序的容器。
1.2 定义
x = {1,2,3} #第一种方法,使用{}
x = set([2,4,5]) #第二种方法,使用强制类型转换
1.3 特点
1.3.1 确定性
类似数学中的集合的确定性,集合描述得很清楚,不存在不能判断一个元素是否在一个集合中,具体来说就是in
或not in
运算符不会得不到确定的结果。
1.3.2 无序性
因此不能通过下标访问。
subscriptable
就是可以通过下标访问的,这里提示not subscriptable
。
1.3.3 互异性
没有重复元素。
1.3.4 支持集合运算
包括==
、!=
、判断子集、真子集、超集、真超集、交集与并集、差集、对称差分。
1.3.5 可变对象
可以通过add
,remove
改变集合本身。
另外有不可变集合frozenset
:
2 字典
2.1 字典
字典是一种可变的无序容器,每个值都有自己对应的键,是一个映射结构,本质上是一个以键为元素的集合。
2.2 定义
使用{}
,键与值用:
分隔,键值对用逗号分隔。
x = {'aa':1,'bb':2,'cc':3}
2.3 特点
2.3.1 key
对应value
可以通过对应的key
访问对应的value
。
2.3.2 可变
2.4 用作函数参数
def func(arg1,**arg2):
print(arg1)
print(arg2)
func('a',a=1,b=2,c=3,d=4)
3 迭代器
3.1 迭代器
迭代器可以作为next()
的参数被调用,不断返回下一个值。
3.2 可迭代对象
可以直接作用与循环语句的对象,对于for
循环是in
后的对象。判断一个对象是否是可迭代对象可以利用isinstance()
与Iterable
。
from collections import Iterable
isinstance([1,2,3],Iterable)
3.3 可迭代对象转换为迭代器
使用iter()
:
4 生成器
4.1 生成器
生成器是一个函数,不过相比起普通函数,返回的是迭代器。
4.2 特点
生成器用的不是return
,而是yield
,另外生成器有惰性计算的特性,调用生成器时不会立即执行它,会在调用每个元素时才进行计算。
4.3 使用
def gen():
x = range(-1,8)
for i in x:
yield i+2
for x in gen():
print(x,end = ' ')
print()
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。