组合数据类型之列表
列表的声明
可以通过中括号 进行定义
l = [] # 声明一个空列表
l = [1,2,3,4]# 声明一个列表,声明的同时存放数据
列表的常见函数:
(添加数据)
append():列表的末尾追加一个新数据
insert():在指定的位置增加一个数据
(复制数据)
copy():复制一个列表单独存放在变量中
extend():扩展列表,用于在当前列表中,追加一个列表
(查询数据)
index():查询某个数据在列表中出现的位置/索引
count():查询某个数据在列表中出现的次数
(删除数据)
pop():删除列表中最后一个数据
remove():删除列表中指定的数据
clear():清空列表【不是删除列表】
reverse()
sort()
以下为网络搜索
reverse():
列表中的reverse()方法用于将列表中的对象反转位置。
语法
以下是reverse()方法的语法 - list.reverse()
参数
N/A
返回值
此方法不返回任何值,但从列表中反转给定对象。
示例
以下示例显示了reverse()方法的用法。
list1 = ['physics', 'Biology', 'chemistry', 'maths']
list1.reverse()
print ("list now : ", list1)
当运行上面的程序,它产生以下结果
list now : ['maths', 'chemistry', 'Biology', 'physics']
从上面输出结果中可以看到,列表中的每个元素都颠倒了。
sort()
简单的升序排序是非常容易的。只需要调用sorted()方法。它返回一个新的list,新的list的元素基于小于运算符(lt)来排序。
>>> sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]
你也可以使用list.sort()方法来排序,此时list本身将被修改。通常此方法不如sorted()方便,但是如果你不需要保留原来的list,此方法将更有效。
>>> a = [5, 2, 3, 1, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]
另一个不同就是list.sort()方法仅被定义在list中,相反地sorted()方法对所有的可迭代序列都有效。
>>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1, 2, 3, 4, 5]
列表中一个特殊函数list()
- 用来创建一个列表
- 将其他类型,转换成列表【类型转换函数】
- 扩展:将列表(包含的是字符换数据),转换成列表
列表的特点:
增删数据较慢
改查数据较快
- 那么,为什么增删数据较慢呢?
- 为什么改查数据较快呢?
组合数据类型之——集合(set)
3W1H
what? 这个东西是做什么用的
where? 这个东西用在哪里?
why? 为什么要用这个东西?
how? 这个东西怎么用?
what?
set:是一个保存多个数据的数据类型。类似列表
数据的操作:增删改查
how?
通过set的各种函数来操作
dir(set)查看set中都有什么函数
help(set.method)查看某个函数怎么用
根据增删改查四种操作方式来组织学习set的函数【技巧】
声明一个set:{}【注意:set中不能存放重复数据,数据没有顺序】
s = {1,2,3,4,5,6}
- 增加数据
add()增加一个数据到集合中 - 修改数据
无法修改数据
可以通过remove + add结合起来完成修改 - 查询数据
无法查询单个数据
for+if查询并获取某个数据
成员运算符,来查询是否包含某个数据
只能通过循环遍历数据 - 删除数据
pop() 删除随机一条数据
remove(x) 删除指定的数据(如果数据不存在,会出现错误的)
discard(x) 删除指定的数据(如果数据不存在,do nothing)
根据具体的功能来确定,如果删除数据不需要出现错误提示,使用discard如果删除数据需要出现错误提示,使用remove
目前来说,建议优先使用discard,等待我们以后学习了异常处理之后,可以使用remove来删除数据
-
多个集合操作
-
x.difference(y):判断x中和y集合不同的数据
x.difference_update(y):判断x中和y集合中不同的数据,并清空x集合后将不同的数据部分赋值给x
x={1,2,3}
y={2,3,4}
x.difference_update(y)
>>>x
{1,4}
x.intersection(y):判断x中和y集合中,相同的数据
x.intersection_update(y):判断x中和y集合中,相同的数据,然后清空x集合并将相同的数据部分赋值给x
x.isdisjoint(y):判断两个集合中,如果没有相同数据的话,返回True
x.issubset(y):判断x中的数据,是否都包含在y中
x.issuperset(y):判断x中是否包含了y中的所有数据
编者说些题外话,那就是Markdown蛮好用的。
现在还不太熟悉,慢慢好就好啦。不懂的地方可以看说明。
网友评论