前言
这次的Python基础接着入门(一),继续对知识进行学习。本节内容是Python中比较常见的,而且比较日常使用。
目录
Python常用的序列结构有:字符串、列表、元组、字典、集合。
Python常用的序列结构有:字符串、列表、元组、字典、集合。
一、列表综合介绍
列表:用于储存任意数目、任意类型的数据集合。
它里面的元素是可以各不相同可以是各个类型的,例如:
a = [10,20,'abc',True]
在此我将列表对象的常用方法进行汇总如下:
方法 | 意义 | 方法描述 |
list.append(x) | 增加元素 | 将x添加到列表原有元素的尾部 |
list.extend(aList) | 增加元素 | 将aList里面的所有元素增加到list的尾部 |
list.insert(index,x) | 增加元素 | 将x添加到指定index的位置 |
list.remove(x) | 删除元素 | 在列表中删除首次出现的元素x |
list.pop() | 删除元素 | 删除并返回列表list,默认是最后一个元素 |
list.clear() | 删除元素 | 删除列表中所有元素 |
list.index(x) | 访问元素 | 返回第一个索引x的位置,没有则报错 |
list.count(x) | 计数 | 计算x在列表中出现的次数 |
len(list) | 长度 | 返回列表中元素的个数 |
list.reverse() | 翻转列表 | 所有元素原地反转 |
list.sort() | 排序 | 所有元素原地排序 |
list.copy() | 复制 | 返回对象的复制 |
以上方法是在调用列表中常用的,里面包括有了列表的增加与删除所以在后面就不再进行分析理解,在表格上就可以一目了然,希望大家对此留有印象。同时,判断列表中是否存在元素可以使用list.count(x)进行计数看是否为0,当然更直接的方法使用in来判断,直接返回True or False。
在这里增加一个列表的切片介绍:
操作 | 介绍 |
[:] | 提取整个列表 |
[start:] | 从start位置开始到结尾 |
[:end] | 从头开始到end结尾 |
[start:end:step] | 从start位置开始为step步长一直到end结尾 |
二、列表的创建
1、基本语法[]的创建
#基本语法[]创建
a = ['abc',10,20,True]
a = []
2、list()的创建
#创建list()是可以将任何迭代数据转化成为列表
a = list(a)
a = list('ESTHERZSY')
#['E', 'S', 'T', 'H', 'E', 'R', 'Z', 'S', 'Y']
3、range()创建整数列表
range()的创建语法:range(start,end,step)。
start:起始默认是0,可以更改。
end:一定要写是多少。
step:步长默认是1,可以更改。
a = list(range(3,15,2))
a
#[3, 5, 7, 9, 11, 13]
三、多维列表的建立
现在普遍工作、学习上需要用到多维列表进行数据储存,二维列表就可以满足存储二维、表格的数据,如下例:
姓名 | 年龄 | 性别 |
ESTHER | 20 | 女 |
ALEX | 22 | 男 |
JEX | 28 | 男 |
m = [
["ESTHER",20,"女"],
["ALEX", 22,"男"],
["JEX" , 28,"男"],
]
#[['ESTHER', 20, '女'], ['ALEX', 22, '男'], ['JEX', 28, '男']]
#在这时候输出的结果并不是我们所期待的样子,所以在此基础上对其进行调整
for k in range(3):
for l in range(3):
print(m[k][l],end='\t')
print() #在这里是打印完一行,进行换行
看到这个代码我觉得应该很多入门选手会觉得很疑惑,所以我在这里对代码进行分析:
首先输入数据这一点是毫无疑问的,后面的嵌套循环应该是大问题。我们分析这个二维表,录入后内存结构图如下:
这样我们可以一步步理解:
print(m[0][0],m[0][1],m[0][2])
#ESTHER 20 女
所以是三行,每一行三个元素;设置k=3,l=3,就可以有上述的嵌套循环。(嵌套循环在后面会说,在这里简单的提一下,图是手画的所以见谅)
四、元组综合介绍
上面我们提到的列表是可变序列,可以更改列表中的元素。现在我们介绍的元组属于不可变列表,不可以更改列表中的元素。因此,元组没有增加元素、修改元素和删除元素的方法。所以相比列表的多数方法,元组我们只学习它的创建和删除,元素的访问和计数。
1、元组的创建
#通过()来创建元组
a = (10,20,30)
#但是元组里面只有一个元素的时候,要在里面加一个逗号
a = (10)
type(a)
#<class'int'>
a = (10,)
type(a)
#<class'tuple'>
#通过tuple()来创建元组,tuple(可迭代对象)
b = tuple()
b = tuple('abc')
#tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。
#list()可以接收元组、字符串、其他序列类型、迭代器等生成列表
2、元组的元素访问和计数
(1)元组的元素是不可以更改的。
(2)元组的元素访问其实和列表的相同,不过返回的依旧是元组内元素。
a = (10,20,30,40)
a[0]
#10
(3)元组的排序只能是利用内置函数sorted()来产生新列表。
a = (2,8,5,7,4,6)
sorted(a)
#[2, 4, 5, 6, 7, 8]
(4)合并列表zip,zip会将多个列表合成对应位置的元素合成元组,并且返回zip这个对象。
a = (1,2,3)
b = (4,5,6)
c = (7,8,9)
d = zip(a,b,c)
list(d)
#[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
元组总结:
1、元组内元素是不可变的。
2、元组的访问和处理比较简单。
3、元组可以作为字典的key(键),列表不行。
五、字典的综合介绍
字典的定义方法:
dict = {"name":"ESTHER","age":"20","sex":"F"}
1、字典的创建
#通过{}、dict()来创建字典对象
a = {'name'='ESTHER','age'='20','sex'='F'}
b = dict(name='ESTHER',age='20',sex='F')
#通过zip()创建字典对象
k = ['name','age','sex']
v = ['ESTHER','20','F']
d = dict(zip(k,v))
d
#{'name': 'ESTHER', 'age': '20', 'sex': 'F'}
#通过fromkeys创建值为空的字典
a = dict.fromkeys(['name','age','sex'])
a
#{'name': None, 'age': None, 'sex': None}
2、字典元素的访问
a = {'name': 'ESTHER', 'age': '20', 'sex': 'F'}
a['name']
#'ESTHER'
#如果访问的key是没有的会报错
#通过get()
a.get('name')
#'ESTHER'
#如果get()对象键是不存在的,默认返回对象,原列表不进行改变
a.get('job','student')
#'student'
#列出所有的键值对
a.items()
#dict_items([('name', 'ESTHER'), ('age', '20'), ('sex', 'F')])
#列出所有的键,所有的值
a.keys()
#dict_keys(['name', 'age', 'sex'])
a.values()
#dict_values(['ESTHER', '20', 'F'])
#len()长度
#检测一个键是否存在一个字典中
a = {'name': 'ESTHER', 'age': '20', 'sex': 'F'}
'name' in a
#True
3、字典元素的添加、修改和删除
(1)给字典新增键值对。如果键已经存在,则覆盖旧的键值对;如果不存在, 则新增“键值对”。
(2)使用 update()将新字典中所有键值对全部添加到旧字典对象上。如果 key有重复,则直接覆盖。
(3)字典中元素的删除,可以使用 del()方法;或者 clear()删除所有键值对;pop()删除指定键值对,并返回对应的值对象。
(4)popitem() :随机删除和返回该键值对。
表格数据使用字典和列表储存,并实现访问:
姓名 | 年龄 | 性别 |
ESTHER | 20 | 女 |
ALEX | 22 | 男 |
JEX | 28 | 男 |
r1 = {'name': 'ESTHER', 'age': '20', 'sex': '女'}
r2 = {'name': 'ALEX', 'age': '22', 'sex': '男'}
r3 = {'name': 'JEX', 'age': '28', 'sex': '男'}
tb = [r1,r2,r3]
#到这步只是录入数据而已
for i in range(3):
print(tb[i].get("name"),tb[i].get("age"),tb[i].get("sex"))
#这个是打印整个表格,当然也可以选择里面其中的来输出,我随便举个例子好了我的名字ESTHER
print(tb[0].get('name'))
六、集合的综合介绍
集合是一个无序可变的,但是集合内元素不重复。
1、集合的创建和删除
可以使用{}来创建集合对象,并且使用add()方法来增加元素
a = {1,2,3}
a.add(4)
a
#{4,1,2,3}
2、使用set(),将列表、元组等可以迭代对象转成集合。
a = ['a','b','c','b']
b = set(a)
b
#{'a', 'b', 'c'}
3、使用remove()移除单个元素,clear()清空整个集合
集合的相关操作
>>> a = {1,3,'abc'}>>> b = {'abc',4,6}>>> a|b#并集{1, 3, 'abc',4,6}>>> a&b#交集{'abc'}>>> a-b#差集{1, 3}>>> a.union(b)#并集{1, 3, 'abc',4,6}>>> a.intersection(b)#交集{'abc'}>>> a.difference(b)#差集{1, 3}