一、列表
1.创建
可以使用中括号直接创立,也可以使用内置函数list()
lst1 = ['微软' , '苹果'] #使用中括号创建
lst2 = list(['微软' , '苹果']) #使用内置函数
2.特点
①元素有序排列 ④类型可混用
②索引映射唯一数据 ⑤动态分配内存
③可以存储重复数据
3.查询
使用索引函数index()来获取 (使用为:对象.index( 元素 ))
若查询元素不在列表中,会抛出ValueError;若有相同元素,仅返回第一个元素
lst = [1,2,3,4,5,6,7]
print(lst.index(3))
获取指定位置的值采用:对象[索引],若超出索引会抛出IndexError
4.切片
列表名[start : stop : step]
如步长为负,则从start向前切
切片结果是一个新的列表
5.元素的增删改查
①增
append() | 末尾追加一个元素 |
extend() | 末尾追加一个/以上的元素 |
insert() | 在任意位置添加一个元素 |
切片 | 在任意位置至少添加一个元素 |
使用append()添加一个列表会将其视为一个列表加入表尾(使用extend()会独立添加)
使用切片可以仅指定start,然后赋值给追加元素
②删
remove() | 删除一个元素 如重复仅删除第一个 不存在会抛出VauleError |
pop() | 删除指定位置上的元素 不存在会抛出IndexError 默认删除最后一个元素 |
切片 | 至少删除一个元素 |
clear() | 清空列表 |
del() | 删除列表 |
new_list = lst[1:3] #对新列表作用
lst[1:3] = [] #对原列表作用
③改
lst[3] = 'X' #修改指定位置元素
lst[1:3] = [30,40,50] #将指定片段替换为新元素组
6.排序
调用sort()方法,默认从小到大排列,指定reverse= true可以反转
调用sorted(),不会改变原列表
!!!,Ture 和 False不能写成 ture 和 false
sorted()函数不依附于对象
7.列表生成式
[ 生成内容 for 迭代内容 in range(1,10)]
二、字典
定义:内置数据结构之一,是一个可变序列;以键值对的方式存储,无序序列
socres = { '张三':100 , '李四':98 ,'王五':45 }
单位元素格式:建 : 值
1.创建
使用花括号创建
socres = { '张三':100 , '李四':98 ,'王五':45 }
使用内置函数dict()
student = dict( name='Ace' , age=18 )
2.获取元素
使用 [ ] socre['张三'] 如不存在会抛出KeyError
使用get() score.get('张三') 如不存在会返回None/默认value
print( socre.get('李四') ) #如不存在会抛出None
print( socre.get('李四',99) ) #如不存在会抛出99
3.元素的判断/删除/新增
判断:in / not in
'Marry' not in socre
删除:del 清空:clear
del score['张三']
score.clear() #清空
新增
score['Alice'] = 90
4.获取字典视图
keys()获取所有的key值
values()获取所有值
items()获取所有key.value对
!!!均使用复试单词(+s)
5.字典遍历
for item in score:
print(item)
仅获取key,若需要获取value请使用[item]或对象.get(item)
6.字典的特点
①所有元素以key-value对的形式存在,且key不允许重复
②元素是无序的
③key是不可变对象
④可以动态伸缩
⑤比较费内存(空间换时间)
7.字典生成式
内置函数zip():将对应元素打包生成一个元组,然后返回这些元组组成的列表
items = ['Tiga','Dyna','Gaia']
years = [96,97,98]
lst=zip(items,years)
print(list(lst))
字典生成式
d = {item.upper(): years for item,years in zip(items , years )}
三、元组
Python内置的数据结构之一,不可变序列(没有增、删、改操作)
1.创建
t = ('Python' , 'hello' , 90 ) #直接小括号
t = tuple( ('Python' , 'hello' , 90 ) ) #内置函数tuple()
t = (10,) #缩写
2.遍历
for item in t:
print(t)
还可以通过 [ ] 访问指定位置的元素
print(t[1])
四、集合
内置数据结构,可变序列类型;是没有value的字典
1.创建
s = {'Python' , 'hello' , 90} #直接使用 { }
s = set( range(6) ) #实用set函数
s = set( [1,2,3,4] ) #元素要使用 [ ]/{ } /( )包裹,不然会报错,使用[ ]将不允许重复元素
#使用( )时元素是无序的
s = set() #空集合
2.集合操作
判断:in / not in
print( 100 in t)
新增:add()一次一个
s.add(80)
update()一次至少一个
s.update((100,200,300)) #需要使用[]/{}/()包裹元素
删除:remove()一次删除一个指定元素,不存在抛出异常
discard()一次删除一个指定元素,不存在也不抛出异常
s.remove(elem) #elem必须存在
s.discard(elem) #elem可以不存在
pop()删除第一元素
s.pop()
clear()清空集合
s.clear()
3.集合间关系
是否相等 == / !=
是否子集issubset
是否超集issuperset
有无交集isdisjoint
s1 == s2
s1.issubset(s2)
s1.issuperset(s2)
s1.isdisjoint(s2)
4.集合间操作
s1.intersection(s2) #交集
s1 & s2 #交集
s1.union(s2) #并集
s1 | s2 #并集
""交集和并集并不影响原集合""
s1.difference(s2) #差集
s1 - s2 #差集
s1.symmetric_difference(s1) #对称差集
5.集合生成式
{ i*i for i in range(10)}
五、小结