文章目录
一、字符串
内容见python基础2
二、列表
列表是可变类型,是包含多个元素的有序连续空间
列表中元素可以是任意类型
1.列表的常用方法
2.列表的创建
1)基本语法[]创建
2)list()创建
使用list()将任何可迭代数据转换成列表
3)range()创建整数列表
range()返回的是一个range对象,使用list()转换成列表对象
list(range(1,10))
4)列表推导式
>>> a = [x*2 for x in range(100) if x%8 ==0] # 通过if过滤元素
>>> a
[0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192]
等同于
a = []
for x in range(100):
if x%8 == 0:
a.append(x*2)
print(a)
3.元素的增加
在列表中间进行列表元素的增加和删除,会涉及到列表元素的大量移动,效率较低。
1)append()方法
原地修改列表对象,在列表末尾添加新的元素
2)+运算符操作
创建了新的列表对象,将两个列表元素一次复制到新的列表中,涉及到了大量的复制操作
3)extend()方法
原地修改列表对象,将目标列表中的元素添加到本列表末尾
4)insert()插入元素
原地修改列表对象,涉及到插入位置后元素的大量移动,效率较低
>>> a = [0,1,2]
>>> id(a)
2360786581192
>>> a.insert(1,5)
>>> a
[0, 5, 1, 2]
>>> id(a)
2360786581192
>>>
5)乘法扩展
适用于乘法操作的有:字符串、列表、元祖
创建了新的列表对象
>>> a = [1]
>>> id(a)
2360786581704
>>> b = a*3
>>> b
[1, 1, 1]
>>> id(b)
2360789198984
4.列表元素的删除-本质上是数组元素的拷贝
1)pop()方法
原地修改列表对象
pop()删除并返回指定位置元素,若未指定,则默认列表最后一个元素
2)del删除
原地修改列表对象
删除列表指定位置元素
3)remove()方法
原地修改列表对象
删除首次出现的指定元素,若不存在该元素则抛出异常
5.元素的访问_元素出现次数_成员资格判定
1)元素访问
1.通过索引访问元素,索引区间[0,列表长度-1]
2.index()获得指定元素在列表中首次出现的索引
2)元素出现次数
count()方法获得指定元素在列表中出现的次数
len()方法返回列表的长度
3)成员资格判断
使用in和not in 关键字,直接返回True和Flase
6.切片操作
与字符串的切片操作类似
7.列表的遍历
list1 = [range(10)]
for i in list 1: #列表是可迭代序列,使用for循环将列表中每一个元素遍历出来
print(i)
8.列表的排序
1)使用方法
原地修改列表对象的排序,无返回值
a = [20,10,30,40]
a.sort() #默认升序排序
a.sort(reverse = True) #降序排序
a.reverse() #列表原地翻转
import random
random.shuffle(a) #打乱顺序随机排序
2)使用函数
创建新的列表对象,返回新列表
a = [20,10,30,40]
b = sorted(a) #升序
c = sorted(a,reverse = True) #降序
3)reversed()返回迭代器
不对原列表做任何修改,返回一个逆序排列的迭代器对象
9.列表其他内置函数汇总
1)max和min函数
用于返回列表中最大值和最小值
2)sum函数求和
对数值型列表进行求和操作,对非数值型列表运算会报错
10.多维列表
一维列表存储一维 、线性数据
二维列表存储二维、表格数据
二、元祖-tuple
元祖属于不可变序列,不能修改元祖中的元素。
与列表相比,元祖没有增加元素、修改元素、删除元素相关的方法。
1.元祖的创建和删除
1)通过()创建元祖,小括号可以省略
a = (1,)
a = 1,
a,b,c = 7,8,9
a,b,c = (7,8,9)
2)通过tuple()创建元祖
tuple(可迭代对象)
3)生成器推导式创建元祖
生成器推导式生成的是生成器对象
>>> s = (x*2 for x in range(5))
>>> s
<generator object <genexpr> at 0x0000012C9F9F51B0> #生成器对象
>>> tuple(s)
(0, 2, 4, 6, 8)
>>> tuple(s) #只能访问一次元素,第二次就为空,需要重新生成一次
()
>>> s = (x*2 for x in range(5))
>>> for i in range(5):
s.__next__()
0
2
4
6
8
3)tuple()和list()对比
2.元祖的元素访问和计数
len()方法返回元祖的长度
3.元祖的排序
1)sorted(元祖对象)
对元祖排序,只能使用内置函数sorted(tupleObj),并生成新的列表对象
>>> a = (10,30,50,20,4)
>>> sorted(a)
[4, 10, 20, 30, 50]
>>>
4.sum()、max()和min()函数
跟列表一样
5.元祖总结
三、字典
字典是“键值对”的无序可变序列
字典中通过"键对象”找到相对应的“值对象”
键是任意的不可变数据,比如整数、浮点数、字符串、元祖,但字典、列表、元祖这些可变类型,不能作为键;并且键不可重复(4和4.0是一样的)
值可以是任意数据,并且可以重复
1.字典的创建
1)通过{}、dict()来创建字典对象
2)通过zip()创建字典对象
>>> k = ["name","liujie"]
>>> v = ["age","23"]
>>> zip(k,v)
<zip object at 0x0000012C9F9CBB88>
>>> d = dict(zip(k,v))
>>> d
{'name': 'age', 'liujie': '23'}
>>>
3)通过fromkeys创建值为空的字典
>>> a = dict.fromkeys(["name","age","job"])
>>> a
{'name': None, 'age': None, 'job': None}
>>>
2.字典元素的访问
1)通过键获得值,如果键不存在,则抛出异常
2)通过get()方法获得值
若指定的键不存在,返回None;也可以设定指定的键不存在默认返回的对象。
>>> a = {"name":"liujie","age":"23","job":"student"}
>>> a.get("name")
'liujie'
>>> a.get("sex")
>>> a.get("sex","别问,问就是男的!")
'别问,问就是男的!'
>>>
3)列出所有键值对
a.items()
>>> a = {"name":"liujie","age":"23","job":"student"}
>>> a.items()
dict_items([('name', 'liujie'), ('age', '23'), ('job', 'student')])
>>>
4)列出所有键与值
>>> a = {"name":"liujie","age":"23","job":"student"}
>>> a.keys()
dict_keys(['name', 'age', 'job'])
>>> a.values()
dict_values(['liujie', '23', 'student'])
>>>
5)键值对个数
len()方法
6)检查一个键是否在字典中
>>> a = {"name":"liujie","age":"23","job":"student"}
>>> "name" in a
True
3.字典元素的添加、修改、删除
1)给字典新增键值对
如果键存在,则覆盖旧的键值对;如果键不存在,则新增键值对
2)update()
使用update()将新字典中所有键值对全部添加到旧字典对象上,如果key有重复,则直接覆盖
>>> a = {"name":"liujie","age":"23","job":"student"}
>>> b = {"name":"tanhaotian","age":"28","job":"enigner"}
>>> a.update(b)
>>> a
{'name': 'tanhaotian', 'age': '28', 'job': 'enigner'}
3)元素删除-del()、clear()、pop()方法
4)popitem()
随机删除和返回该键值对
4.序列解包
序列解包可用于元祖、列表、字典。可以方便地对多个变量赋值
5.复杂表格数据存储
6.字典核心底层原理-后面补充
四、集合
集合无序可变,元素不可重复。
集合底层是字典实现,集合的所有元素都是字典中的“键对象”,因此,不能重复且是唯一的。
1.集合的创建和删除
1)使用{}创建集合对象,并使用add()方法添加元素
2)使用set()
将列表、元祖等可迭代对象转成集合。如果里面有重复数据则只保留一个
3)remove()方法删除指定元素
4)clear()方法清空列表
>>> a = {1,2,3,4}
>>> a.clear()
>>> a
set()
2.集合相关操作
python对集合提供了并集、交集、差集等运算