序列
序列(sequebce)不是一个独立的数据类型,而是列表、元组和字符串等元素之间有顺序关系的数据类型的统称,常见的有字符串、列表、元组。
python中的“序列”有哪些特点?
# 1、支持索引(通过元素的序号读取某个元素)
myString[1]
# 2、支持切片([start:stop:step])
myString[1:9:2]
# 3、支持迭代 (序列是可迭代的数据类型)
for i in myString:
print()
#4、支持拆包式赋值 (序列支持拆包式赋值)
a1,a2,a3,a4,a5,a6 = myList
#5、支持重复运算 (重复运算符为*)
mylist *3
#6、设有专门函数
集合
集合是指一种可变的、无序容器,标志性符合为{}。Python 中的{}还可以用在字典当中。
因为集合是无序的,所以不能通过下标访问集合中的某个元素。其中frozenset是不可变对象
字典
字典是一种可变的、无序的容器,标志性符号为{}。其中每个值value都有自己的键key。字典作为一个映射结构,即key和value之间建立了映射关系。本质上,字典是一个以key为元素的集合。
可以通过key访问value。
字典在数据分析/数据科学中的主要应用场景是存放“临时数据”,如函数参数“**args”。
在函数形参中,带有“*”和“**”的参数分别代表的是以“元组(不带key的值)”和“字典(带key的值)”的形参接收不定长的实参。
迭代器和生成器
- 为什么python中不显示有些函数的返回值,如range()?因为这些函数的返回值是迭代器(iterator)
- 什么是迭代器?可被next()函数调用,并不断返回下一个值的对象。python的内置函数iter()可以将“迭代对象”转换成“迭代器”
- 如何遍历迭代器?内置函数next();也可以用在for语句中
- 什么是生成器?指生成一个新的迭代器的函数。特点:1、不用 return 语句,而用yisld语句 2、不是立刻计算,而是惰性计算。
- 如何定义生成器?与普通函数定义类似,但是需要将return 改为yield。
-
lis = [1,2,3,4,5,6,7,8,9] next(lis)
TypeError Traceback (most recent call last) <ipython-input-15-cdd6288ddae5> in <module> 1 lis = [1,2,3,4,5,6,7,8,9] ----> 2 next(lis) TypeError: 'list' object is not an iterator
将 可迭代的对象转换为迭代器------------内置函数iter()
-
myl = iter(lis) print(next(myl)) print(next(myl)) print(next(myl)) print(next(myl)) print(next(myl))
1 2 3 4 5
函数
函数和方法:
类外定义叫函数,可以直接用函数名调用。如sort(myLIst)
类内定义叫方法,必须通过对象名来调用。如myList.sort()
函数的种类:
内置函数、模块函数、用户自定义函数
模块
包
包通常是一个文件夹,即含有_init_.py文件的文件夹