#一、序列
l 成员有序排列的,且可以通过下标偏移量访问到它的一个或者几个成员,这类类
型统称为序列。
l 序列数据类型包括:字符串,列表,和元组类型。
l 特点: 都支持下面的特性
1、索引与切片操作符
2、成员关系操作符(in , not in)
3、连接操作符(+) & 重复操作符(*)
#二、列表
Python中的列表与C语言中的数组不同,数组中存储的是同一种数据类型的集合,而列表中可以存储任意数据类型的集合
(1)列表的特性一:索引与切片
(2)列表的特性二:成员操作符
(3)列表的特性三:连接操作符
上面提到的这些列表的特性都和字符串的特性是类似的,但是列表与字符串是有差异的,字符串是不可变的数据类型,而列表是可变的数据类型。
可以看出更改之后li的id是没有变化的,说明只是更改了li元素的值,变量并没有改变
列表的特性:
练习1
根据指定月份,打印该月份所属的季节。
提示: 3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季
考察点: 列表的成员操作符, if判断语句
month = [12,1,2,3,4,5,6,7,8,9,10,11]
while True:
s = int(input(‘请输入指定月份:’))
if s in month[3:6]:
print(‘春季’)
elif s in month[6:9]:
print(‘夏季’)
elif s in month[9:]:
print(‘秋季’)
elif s in month[0:3]:
print(‘冬季’)
else:
break
(4)列表特性四:增删改查
1、列表的增加:
列表可通过append追加一个元素到列表中;
列表可通过extend方法拉伸, 实现追加多个元素到列表中
在指定位置添加元素使用insert方法; L.insert(index, object)
2、列表的修改
修改列表的元素:直接重新赋值;
3、列表的查看
查看某个列表元素的下标用index方法;
查看某个列表元素出现的次数用count方法;
4、列表元素的删除
list.remove()删除列表中的指定元素。
list.pop()根据元素的索引值进行删除指定元素。
list.clear: 清空列表里面的所有元素。
5、列表的其他操作
注意:变量名与函数名不能重复调用,否则不会报错TypeError: ‘int’ object is not callable
#二、元组
元组的创建,删除及特性
1). 定义空元组 tuple = ()
2). 定义单个值的元组 tuple = (fentiao,)
3). 一般的元组 tuple = (fentiao, 8, male)
注意:元组是不可变数据类型,不能对元组的值任意改变
元组的查看方法:
t.count(value)–>int 返回value在元组中出现的次数;
t.index(value) 返回value在元组中的偏移量(即索引值)
元组的赋值应用:
特性1: 对元组分别赋值,引申对多个变量也可通过元组方式分别赋值
变量交换:
x=2; y=10;x, y = y, 2; print(x,y)
这种交换方式无需中间变量即可交换两个变量的值。
实现机制:
1). 构造一个元组(y, x);
2). 构造另一个元组(x, y);
3). 元组(y, x)赋值给(x, y),元组赋值过程从左到右,依次进行
#三、命名元组
Tuple还有一个兄弟,叫namedtuple。虽然都是tuple,但是功能更为强大。
collections.namedtuple(typename, field_names)
typename:类名称
field_names: 元组中元素的名称
#四、is和的区别
问题: is和两种运算符在应用上的本质区别是什么?
1). Python中对象的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)。
2). is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。
3). ==用来比较判断两个对象的value(值)是否相等;(type和value)
is也被叫做同一性运算符, 会判断id是否相同;(id, type 和value
#五、深拷贝和浅拷贝
深拷贝与浅拷贝的区别:
面试中常见的题目
问题: 深拷贝和浅拷贝的区别?/python中如何拷贝一个对象?
赋值: 创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。(=)
浅拷贝: 对另外一个变量的内存地址的拷贝,这两个变量指向同一个内存地址的变量值。(li.copy(), copy.copy())
•公用一个值;
•这两个变量的内存地址一样;
•对其中一个变量的值改变,另外一个变量的值也会改变;
深拷贝: 一个变量对另外一个变量的值拷贝。(copy.deepcopy())
•两个变量的内存地址不同;
•两个变量各有自己的值,且互不影响;
•对其任意一个变量的值的改变不会影响另外一个;