数据的容器有5种:列表、元组、字符串、字典、集合
列表、元组、字符串是序列,序列有索引、切片、加法和乘法
一、列表[list]
1、列表元素可以是不同的数据类型
[1,2,'world']
2、列表相加其实就是列表合并,列表元素合成一个列表
a=['a',1,'b',3.0]
b=['c','d','e']
print(a+b)
print(a*3)
['a',1,'b',3.0,'c','d','e']
['a',1,'b',3.0,'a',1,'b',3.0,'a',1,'b',3.0]
列表乘法,就是列表种的元素重复几次
3、列表创建:
a=list('abcde')
print(a)
>>>['a','b','c','d','e']
list(range(5))
>>>[0,1,2,3,4]
4、列表最后一个位置的索引为-1
5、列表切片
列表名称[起始索引位置:最后索引位置:步长]
默认步长为1
起始索引位置的值包含在返回结果中,而最后索引位置的值不包含在返回结果中
逆向切片,将步长设为负数,从右向左切片
[-3:-6:-1]
省略起始索引位置,表示从最开始进行切片
[:-2]
将两个索引都省略后,将按原样复制一个列表
[::]
列表的顺序颠倒,则可以使用::-1
[::-1]
6、在指定的索引位置添加数据元素insert()
a=[1,2,3,4]
a.insert(1,'a')
print(a)
>>>[1,'a',2,3,4]
7、在列表尾部加入元素append()
8、在一个列表中添加另一个列表extend()
a=list(range(6))
b=list(range(6,10))
a.extend(b)
print(a)
>>>[0,1,2,3,4,5,6,7,8,9]
9、列表对象的删除
remove()以值的方式对列表进行删除操作,删除的值不做返回
del()以索引位置的方式对列表进行删除操作,删除的值不做返回
pop()以索引位置的方式对列表进行删除操作,删除的值做返回
二、元组(tuple):可以使代码更安全,防止错误赋值导致重要对象的改变
1、元素可以有不同的类型,但元素是不可变的
如果元素中的一个元素是list,那么元素不能改变,但列表中的值可以改变
2、
b=tuple('abcd')
>>>('a','b','c','d')
三、字符串
1、可以看作是字符的序列,字符串内的字符不可以改变,可以执行序列的四种操作
四、字典(dict)哈希映射或者相关数组
1、字典是一种大小可变的键值对集,用在需要高速查找的地方
2、字典中的数据元素是无序的,并不一定会按照初始化的顺序排序,不同键所对应的值可以相同,但是字典中的键必须是唯一的
3、
d=dict([(1,'a'),(2,'b'),(3,'c')])
print(d)
>>>{1:'a',2:'b',3:'c'}
d=dict(x1='a',x2='b',x3='c')
print(d)
>>>{'x1':'a','x2':'b','x3':'c'}
4、zip()函数创建字典,将多个序列中的元素配对
a=[1,2,3]
b=['a','b','c']
c=dict(zip(a,b))
print(c)
>>>{1:'a',2:'b',3:'c'}
5、
dict(zip(list('abcdef'),range(1,7)))
>>>{'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
6、字典的索引是键
通过键索引修改值,如果键不存在就是插入
如果在字典中不存在索引的键,则系统会报错
(a字典中不存在9键就会报错)
a[9]
字典中某值的索引还可以通过get方法,如果字典不包含某个键,可以返回None,或者自己指定的值
print(a.get(1))
print(a.get(9,'-'))
>>>None
>>>-
7、通过in判断是否存在某个键,其语法跟在列表和元组中判断是否存在某个值是相同的
print(5 in a)
print(9 in a)
>>>True
>>>False
8、使用keys()和values()方法获取字典的键或者值,items()返回键值对
a.keys()
a.values()
a.items()
9、字典的删减有三种方法
使用del()函数对单一元素或者整个字典进行删除
使用pop()方法删除单一元素
使用clear()方法清空词典中的所有元素
del a[1]
a.pop(2)
a.clear()
四、集合(set)
集合是一种无序集,它是一组键的集合,不存储值
在集合中,重复的键是不被允许的,集合可以用于去除重复值
集合也可以进行数学集合运算,如并、交、差以及对称差等。
应用:
去重:把一个列表变成集合,就自动去重了
关系测试:测试两组数据之前的交集、差集、并集等关系
集合的创建有两种方式:使用set()函数或者使用大括号{}
shot_ _type_ set = set()
shot_ type_ set ={'Jump Shot', 'Jump Shot', ' Jump Shot', 'Jump Shot', ' Driving Dunk Shot', ' Jump Shot','Layup Shot', 'Jump shot'; 'Jump Shot', ' Running Jump Shot', 'Jump Shot', ' Jump Shot', ' RunningJump Shot', ' Jump Shot' ,'Jump Shot',' Jump Shot' ,'Driving Layup Shot',' Jump Shot',' Jump Shot' ,'Driving Layup Shot'}
print(shot_ type_set)
{'Jump Shot', 'Driving Dunk Shot', 'Layup Shot', 'Driving Layup Shot' ,'Running Jump Shot '}
需要注意的是,创建空集合,必须使用set(),而不是{},因为{}表示创建一 个空的字典
集合可以嵌套tuple和string,不可变的结构,但不能嵌套list、set和dict