Python容器类型数据
Python内置的数据类型如序列(列表、元组……)、集合和字典可以容纳多项数据,我们称它们为容器类型的数据。
一、序列
序列是一种可迭代的、元素有序的容器类型的数据。
序列包含:列表list,字符串str,元组tuple,字节序列bytes……
序列索引操作
比如字符串:“China”这个字符串,每一个字符元素都带有序号,这个序号就是索引,索引又分为正值索引和负值索引。

有了索引后,可以通过下标运算符访问序列中指定索引的元素,下标运算符是跟在容器数据后的一对中括号[],中括号中的参数则表示要获取元素的索引值。

对于+,* 运算符也可以用于序列中
+:表示把两个序列连接起来
*:表示把序列重复多次

切片操作
序列的切片,指的是从序列中切分出来小的子序列。
切片运算符的语法形式:[start: end: step]
start:表示开始索引
end:表示结束索引
step:表示步长(这里的间隔可以是正整数也可以是负整数),当省略时默认的值是1
切片是包含start位置的元素,不包含end位置的元素的,并且两个值是可以省略的,省略时会你取所有元素
a = 'Hello'
a[1:3] # el
a[:3] # Hel,当省略了start时,它会默认为0
a[0:] # Hello,当省略了end时,它会默认为序列的长度,也就是len(a)的值为5
a[0:0] # Hello,当省略了start,end后,都取默认值则相当于a[0:5]
a[1:-1] # ell,这里end使用了负值索引,-1表示是最后一个元素,由于切片时又不包含end位置的元素所以为ell
a[0:3:2] # Hl,这里指定了步长为2
a[::-1] # 步长为负值时,从右往左取元素,这样这个时候会把所有的元素取到并且元素倒置
成员测试
成员测试运算符有两个:in、not in
in:用来测试是否包含某一个元素
not in:用来测试是否不包含某一个元素
二、列表
它是一种可变序列类型,可以追加、插入、删除和替换列表中的元素。
列表创建的两种方式:
1、list函数:函数中参数是可迭代对象(字符串,列表,元组,集合或字典……)
2、[元素1,元素2,元素3,...,元素n]:指定具体列表元素,元素之间以逗号分隔,列表元素需要使用中括号括起来

追加元素
追加元素可以用两种方式
1、追加单个元素,可以使用列表的append方法,一次只能追加一个元素
2、在列表中追加多个元素可以使用+运算符或者列表的extend方法

在Python函数和方法是有区别的,方法是属于类的,通过类或对象来调用,函数不属于任何类,直接调用就可以了。

插入元素
要向列表中插入元素时可以使用列表的insert(i,x)方法,其中i指定索引的位置,x指定了要插入的元素。


替换元素
如果要替换列表中的元素时,把列表下标索引元素放在赋值等号的左边,这样子就可以进行赋值了

删除元素
要想在列表中删除元素时,可以使用列表的remove(x)方法,如果找到匹配的元素x,则删除这个元素,如果找到多个匹配的元素则只删除第一个匹配的元素。

三、元组
元组(tuple),是一种不可变序列类型。
创建元组
创建元组时有两种方法
1、tuple函数,给它的参数是一个可迭代的对象(字符串、列表、元组、集合和字典……)
2、(元素1,元素2,元素3,……),这里的括号可以省略

元组拆包
创建元组,并把多个数据放到元组中,这个过程称为元组的打包。
与元组的打包相反的是拆包,也就是把元组中的元素取出来,分别赋值给到不同的变量。


四、集合
集合(set)是一种可迭代的、无序的、不能包含重复元素的容器类型
注意:序列中的元素是有序的,集合中的元素是元序的,但元素不可以重复
集合的创建有两种方式
1、set函数,参数是可迭代的对象(字符串、列表、元组、集合和字典……)
2、{元素1,元素2,元素3,……}:指定具体的集合元素,元素之间以逗号分隔。大括号不可以省略

修改集合
修改集合,可以向其中添加元素,删除元素。相应的方法如下:
1、add(element):添加元素,如果元素已存在则不可以添加,这时不会报错
2、remove(element):删除元素,如果存在则删除,不存在则报错
3、clear():清除集合
s = {'罗贯中', '吴承恩', '曹雪芹', '施耐庵'}
s.add('张三')
s # 展示集合的元素{'张三', '罗贯中', '吴承恩', '曹雪芹', '施耐庵'}
s.remove('张三') # 删除元素'张三'
s.remove('张三') # 删除时会报错,因为'张三'这个元素不存在了
'张三' in s # 得到的结果是False
s.clear() # 清空集合,集合变为set()
len(s) # 因为集合被清空了,这里结果为0
五、字典
字典(dict)是可迭代的,通过key来访问元素的可变容器类型的数据。
字典分为两个就分,一个是键,一个是值,键中不可以包含重复的元素,值中则没有限制
创建字典的两种方式
1、dict函数
2、{key1:value1,key2:value2,...,keyn:valuen}:指定具体的字典键值对,键值对之间以逗号分隔,使用大括号括起来。

字典修改
修改字典都是对键和值同时操作的,对字典的修改包含添加、替换和删除
items() 返回字典中所有键值对视图
keys() 返回字典所有键
values() 返回字典所有值

# coding=utf-8
student_dict = {101:'张三',102:'李四',103:'王五'}
print("------遍历键-----")
for sid in student_dict.keys():
print("学号:" + str(sid))
print("--------遍历值-----")
for sname in student_dict.values():
print("姓名:" + sname)
print("遍历键和值")
for sid,sname in student_dict.items():
print('学号:{0}-姓名:{1}'.format(sid,sname))