python基础4-序列

本文详细介绍了Python的序列类型,包括字符串、列表、元组和字典的基础知识和操作方法,如创建、访问、增删改查、排序、切片、遍历等。特别强调了列表的可变性及其效率问题,以及元组的不可变性。同时,字典的创建和操作也得到了详细阐述,包括键值对的存取、更新和删除。最后,讲解了集合的创建和相关操作,突出了其无序和唯一性的特点。
摘要由CSDN通过智能技术生成

文章目录

一、字符串

内容见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对集合提供了并集、交集、差集等运算
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值