一.列表
1.1 列表的定义
1.列表元素可以是各种数据类型
2.列表 = [data1, data2, data3...]
3.生成列表——list(可迭代对象)
返回值为由可迭代对象分割形成的列表
实现字符串/元组/集合等向列表的转换
a = (1, 2, 3, 4, 5)
list(a)
out>>>[1, 2, 3, 4, 5]
range(起始数字, 终止数字, 数字间隔) ——终止数字取不到,类似切片操作
起始数字缺省默认为0
终止数字不可缺省
数字间隔缺省默认为1
for i in range(5): 等价于 for i in [1, 2, 3, 4, 5]:
5.range()转列表
list(range(5)) == [0, 1, 2, 3, ]
1.2 列表的性质
1.len(列表)
返回值为列表的长度
2.列表的索引——正向/反向,与字符串索引相同
变量名[位置编号]
3.列表的切片(与上一章字符串切片完全相同)
变量名[开始位置: 结束位置: 切片间隔]
4.可以打包、解包赋值
1.3 对列表的操作
1.列表相加
a = [1, 2, 3]
b = [4, 5, 6]
a+b
out>>>[1, 2, 3, 4, 5, 6]
2.列表*n
a = [1, 2]
a*2
out>>>[1, 2, 1, 2]
3.列表初始化的一种方式
a = [0] * 10
4.增加元素
a = [1, 2]
a.append(3)
a
out>>>[1, 2, 3]
②任意位置增加元素——列表.insert(插入位置, 插入元素)
a = [1, 2]
a.insert(1,3)
a
out>>>[1, 3, 2]
③列表1末尾添加列表2作为单个元素——列表1.append(列表2)
改变的是列表1
a=[1, 2]
b=[3, 4]
a.append(b)
a
out>>>[1, 2, [3, 4]]
④列表1末尾逐个添加列表2的元素——列表1.extend(列表2)
是对列表1使用的方法,改变的是列表1,区别于列表加法
a=[1,2]
b=[3,4]
a.extend(b)
a
out>>>[1, 2, 3, 4]
5.删除元素
①列表.pop(位置编号)
a=[1, 2, 3, 4]
a.pop(1)
a
out>>>[1, 3, 4]
②列表.remove(待删元素)
a=[1, 2, 3]
a.remove(1)
a
out>>>[2, 3]
6.查找元素——列表.index(待查元素)
返回值为第一次出现待查元素的位置编号
a = [1, 2, 3]
idx = a.index(2)
idx
out>>>1
7.修改元素——先索引后赋值
a[1] = 3
8.列表的赋值
①错误方式——列表1 = 列表2
相当于换了个名字存储这个列表,可理解为将地址进行了赋值
原列表改变会导致”新列表“改变
a = [1, 2, 3]
b = a
b
out>>>[1, 2, 3]
a.pop()
a
out>>>[1, 2]
b
out>>>[1, 2]
②正确方法——列表浅拷贝
列表 = 待拷贝列表.copy()
原列表改变不影响新列表
a = [1, 2, 3, 4, 5]
b = a.copy()
b
out>>>[1, 2, 3, 4, 5]
③正确方法——列表浅拷贝——切片赋值
列表 = 待拷贝列表[ : ]
a = [1, 2, 3, 4]
b = a[:] #默认从0到结束
a
out>>>[1, 2, 3, 4]
9.列表的排序
a = [1, 3, 2, 5, 4]
a.sort() #默认从小到大排序
a
>>>[1, 2, 3, 4, 5]
a.sort(reverse = True) #从大到小排序
a
>>>[5, 4, 3, 2, 1]
②使用 sorted(列表) 进行临时排序,列表本身不改变,返回值为排序后列表
b = sorted(a, reverse = True)
10.列表的翻转
①切片方法——a[ : : -1],列表本身不改变
②列表.reverse()——永久反转,列表本身发生改变,无返回值
11.for循环对列表元素进行遍历
a = [1, 2, 3, 4, 5]
sum = 0
for i in a:
sum += i
sum
>>>15
二.元组
2.1 元组的性质
1.元组也属于序列类型,跟列表一样可以使用多种类型元素
2.外型上:元组的元素用括号包围
3.可以将元组视为不可变的列表,可索引访问,但不可增加、删除、修改
2.2 对元组的操作
1.多用于打包、解包场景
x = 2, 3 #打包赋值
x
(2, 3)
a, b = x #解包赋值
a
>>>2
b
>>>3
2.zip函数——zip(列表1, 列表2)
将列表1和列表2中的元素以元组的形式一一配对
a = [1, 2, 3]
b = [11, 22, 33]
list(zip(a,b))
>>>[(1, 11), (2, 22), (3, 33)]
x, y, z = zip(a, b) #也可用于解包赋值
x
>>>(1, 11)
y
>>>(2, 22)
z
>>>(3, 33)
3.除不能增、删、改以外,其他操作与列表均相同
三.字典
3.1 字典的生成
1.通过键—值映射实现数据存储和查找
2.形式:dict = {i: "熊大", j: "熊二", k:"熊三"}
3.2 字典的性质
1.字典是无序的,只能通过键索引访问,访问后可以改变值
2.字典的键不可重复,相当于位置编号
3.字典的键一定是不可变类型——数字、字符串、元组
3.3 对字典的操作
1.字典的长度:len(字典)——键值对个数
2.字典的索引:字典[键]
dict = {i: "熊大", j: "熊二", k:"熊三"}
dict[k]
>>>'熊三'
dict[k] = "光头强"
dict[k]
>>>'光头强'
dict
>>>{1: '熊大', 2: '熊二', 3: '光头强'}
3.字典的增加:字典[新键名] = 新值
4.字典的删除:
①del 字典[待删除键]
②字典.pop(待删除键)
返回值为删除键对应的值
③字典.popitem()
返回值为这个键值对的元组形式
5.字典的修改:索引后赋新值
6.字典.get(key, default)
若在字典中找得到这个键,则返回其对应的值
若在字典中找不到这个值,则返回default的值
7.字典.keys()——以列表的形式存储所有键并返回
8.字典.values()——以列表的形式存储所有值并返回
9.字典.items()——将字典的一键一值分别作为元组打包起来
dict = {1: '熊大', 2: '熊二', 3: '光头强'}
dict.items()
>>>dict_items([(1, '熊大'), (2, '熊二'), (3, '光头强')])
10.for循环配合.items()方法
for i,j in dict.items():
print(i, j)
>>>1 熊大
>>>2 熊二
>>>3 光头强
四.集合
4.1 集合的表达
1.a = {1, 2, 3}
2.集合是一系列互不相等的元素的无序集合
3.可以看作是只有键没有值的字典
4.2 集合的运算——返回值为集合类型
1.交集运算——集合A & 集合B
2.并集运算——集合A & 集合B
3.非交集运算——集合A ^ 集合B
4.3 对集合的操作
1.增加元素——集合.add(x)
2.删除元素——集合.remove(x)
3.集合长度——len(集合)
4.集合遍历——for i in 集合
今天的学习笔记就到这里啦,如果你觉得这篇文章对你有帮助的话,还请能够点一个赞,笔者是一名大二学生,在学习的过程中会持续更新自己的学习笔记,若有出错的地方烦请大家指教,有什么建议也可以告诉我哦,希望大家能够一起进步!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。